密码学课程设计-刘欣凯

更新时间:2024-06-10 20:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

现代密码学实验

题目: 2012现代密码学实验

姓 名: 刘欣凯 学号: 192102-21 院(系): 计算机学院 专业: 信 息 安 全 指导教师: 任 伟 职称: 副教授 评 阅 人: 职称:

2012 年 12 月

密码学课程设计

现代密码学实验原创性声明

本人以信誉声明:所呈交的现代密码学实验是在导师指导下进行的研究工作及取得的研究成果,论文中引用他人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人成果及为获得中国地质大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。

毕业论文作者(签字):刘欣凯

签字日期: 2012年 12 月 18 日

学校代码:10491 本科生学号:20101003356

1

密码学课程设计

现代密码学实验

本 科 生:刘欣凯 学科专业:信息安全 指导老师:任 伟

二〇一二年十二月

2

密码学课程设计

目 录

实验一 古典密码算法...............................................................................................................5

1.1 仿射密码..................................................................................................................................5 1.11 算法原理和设计思路.............................................................................................................5 1.12 关键算法分析.........................................................................................................................5 1.13运行结果..................................................................................................................................7 1.2古典密码hill..............................................................................................................................8 1.21古典密码hill概述...................................................................................................................8 1.22 算法原理和设计思路.............................................................................................................8 1.23 关键算法分析.........................................................................................................................9 1.24 运行结果..............................................................................................................................10 1.25 密码安全性分析..................................................................................................................10 1.3古典密码Vegenere.................................................................................................................12 1.31古典密码Vegenere概述.......................................................................................................12 1.32算法原理和设计思路............................................................................................................12 1.33 关键算法分析.......................................................................................................................12 1.34 运行结果...............................................................................................................................13 1.35密码安全性分析....................................................................................................................14 1.4古典密码Playfair...................................................................................................................15 1.41古典密码Playfair概述.......................................................................................................15 1.42算法原理和设计思路............................................................................................................15 1.43 运行结果...............................................................................................................................17 1.44 密码安全性分析...................................................................................................................17

实验二 ElGamal签名体制....................................................................................................18

2.1 ElGamal签名概述.................................................................................................................18 2.2算法原理和设计思路.............................................................................................................18 2.3关键算法分析.........................................................................................................................20 2.4运行结果.................................................................................................................................20

实验三 Rabin加密和签名.....................................................................................................21

3

密码学课程设计

3.1 rabin加密解密概述..............................................................................................................21 3.2 算法原理和设计思想.............................................................................................................21 3.3 运行结果.................................................................................................................................24

实验四 公钥密码算法RSA......................................................................................................25

4.1 公钥密码算法RSA概述.........................................................................................................25 4.2 算法原理和设计思想.............................................................................................................25 4.3 关键算法分析.........................................................................................................................27 4.4 运行结果.................................................................................................................................28 4.5 密码安全性分析.....................................................................................................................29

实验总结和体会.........................................................................................................................30

4

实验一 古典密码算法

1.1 古典密码仿射密码

1.11算法原理和设计思路

加法密码和乘法密码结合就构成仿射密码,仿射密码的加密和解密算法是: C= Ek(m)=(k1m+k2) mod n

M= Dk(c)=k3(c- k2) mod n(其中(k3 ×k1)mod26 = 1)

仿射密码具有可逆性的条件是gcd(k1, n)=1。当k1=1时,仿射密码变为加法密码,当k2=0时,仿射密码变为乘法密码。

仿射密码中的密钥空间的大小为nφ(n),当n为26字母,φ(n)=12,因此仿射密码的密钥空间为12×26 = 312。

仿射密码举例:

设密钥K= (7, 3), 用仿射密码加密明文hot。三个字母对应的数值是7、14和19。分别加密如下:

(7×7 + 3) mod 26 = 52 mod 26 =0 (7×14 + 3) mod 26 = 101 mod 26 =23 (7×19 + 3) mod 26 =136 mod 26 =6

三个密文数值为0、23和6,对应的密文是AXG。 1.12关键算法分析

密码学课程设计

6

密码学课程设计

填充矩阵,将明文输入,然后构成加密矩阵。构成矩阵以后再进行加密运算。

这一部分是解密算法。是加密的逆过程。

1.13运行结果

7

密码学课程设计

1.2 古典密码Hill

1.21 古典密码Hill概述

Hill体制是1929年由Lester S.Hill发明的,它实际上就是利用了我们熟知的线性变换方法,是在Z26上进行的。Hill体制的基本思想是将n个明文字母通过线性变换转化为n个密文字母,解密时只需要做一次逆变换即可,密钥就是变换矩阵。 1.22算法原理与设计思路

1.假设要加密的明文是由26个字母组成,其他字符省略。将每个字符与0-25的一个数字一一对应起来。(例如:a/A—0,b/B—1,……z/Z—25)。

?7115?023187?2.选择一个加密矩阵An?n,其中矩阵A必须是可逆矩阵,例如A??11069??1692321??21137225?5??2? ?0?15??3.将明文字母分别依照次序每n个一组(如果最后一组不足n个的话,就将其补成n个),依照字符与数字的对应关系得到明文矩阵minglen/n?n。

4.通过加密矩阵A,利用矩阵乘法得到密文矩阵milen/n?n= minglen/n?n?An?nmod 26; 将密文矩阵的数字与字符对应起来,得到密文。

8

密码学课程设计

5.解密时利用加密矩阵的逆矩阵A和密文,可得到明文。

n6. 设明文为m?(m1?m2,?,mn)?Z26,密文c?(c1,c2,.?,cn)?Z26,密钥为Z26上的

?1nn*n阶可逆方阵K?(kij)n?n,则

加密:密文c?mKmod26解密:明文m?cK1.23 关键算法分析

?1mod26

欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。

产生公约数的目的是为了下一步求逆矩阵和矩阵时方便运算。

9

密码学课程设计

这段代码是加密的过程,主要设计思想是输入的明文与矩阵做乘法,当明文长度为矩阵阶数的倍数时,自动将明文变为列数与矩阵阶数相同,然后进行计算。当明文长度不是矩阵阶数的倍数时,则会出现无关字符。

代码中的利用矩阵乘法得到的密文输出即可,而解密的过程只需要利用矩阵的逆矩阵,也就是我们在做乘法的时候将矩阵换为它的逆矩阵即可得到明文。

1.24 运行结果

1.25 密码安全性分析

经过算法分析和设计,我们可以知道它的安全强度(m是素数,模数为合数,不是任意

10

密码学课程设计

矩阵可逆) 为 26的m*m次方。例如,当m=5时,得出它的安全强度为2的117次方。通过矩阵,将信息均匀分布到每个m长向量的每个分向量中,具有比较好的随机性,相对于其他的古典密码来说,Hill是比较安全的。

但是在已知m组明文、密文和解密算法的情况下,我们需要解M组同余方程组,因此,密钥是可以恢复的。关键是求得加密矩阵的逆—解密矩阵。只要分析出两个明文向量(线性无关)与相应的密文向量。若有

?b1???? ?b2??b1b3??a1?a1??b3??a3?A?????A??????A?bbaba?24??a2?2??4??4?a3??b1A???a4???b2b3??a1??b4??a2a3??a4??1如果甲方截获了一段密文:OJWPISWAZUXAUUISEABAUCRSIPLBHAAMMLPJJOTENH经分析这段密文是用HILL2密码编译的,且这段密文的字母 UCRS 依次代表了字母 TACO,我们接着将要进行破译。 关系如下:

?U??21???C?????3????1?A?1?? ?? ? R??18???S?????19????2?A?2 ????计算矩阵的逆

?20??T??1???1?????A???????2???15?????O???????3??C??203??2118?A?????115319????

det??1

2118?2??(mod26)?345(mod26)?7319 ?2118??1?2516??19?18??(mod26)?15?(mod26)???????73???321? ?319? ?1?203??2118??1A??????115??319?

破译 密文向量

?117????09????

?15 ??23??9??0??24??21??9??5??2??21?????????????????????16192112119113?10 ??????????????????? 明文向量

11

?18??9??12??8??1??13??12??10??15??5??8????????????????????????19??16??2??1??13??13??16??10??20??14??8?密码学课程设计

3??9??20??14??19??15??14??20??22??19??20??3??21??20??25??14??9??4??5??1??20??

?????????????????????????????????????????? ??14??15??9??7??9??7??15??9??9??1??15??14??18??9??13??4??12??5??19??20??12

明文:Clinton is going to visit a country in Middle East

1.3 古典密码 Vignere

1.31 古典密码 Vignere概述

1858年法国密码学家维吉尼亚提出一种以移位替换为基础的周期替换密码。这种密码是多表替换密码的一种。是一系列(两个以上)替换表依次对明文消息的字母进行替换的加密方法。

1.32 算法原理与设计思路

1.首先使用维吉尼亚方阵,它的基本方阵是26列26行。方阵的第一行是a到z按正常顺序排列的字母表,第二行是第一行左移循环一位得到得,其他各行依次类推。

2.加密时,按照密钥字的指示,决定采用哪一个单表。例如密钥字是bupt,加密时,明文的第一个字母用与附加列上字母b相对应的密码表进行加密,明文的第二个字母用与附加列的字母u相对应的密码表进行加密,依次类推。

3.令英文字母a,b,…,z对应于从0到25的整数。设明文是n个字母组成的字符串,即 m=m1m2m3m4…mn

密钥字周期性地延伸就给出了明文加密所需的工作密钥 K=k1k2…kn,E(m)=C=c1c2…cn 加密:Ci=mi+kimod26

解密:mi=ci-kimod26,i=1,2,3,…,n 1.33 关键算法分析

12

密码学课程设计

加密算法的关键是给出初始密钥,例如第一个密钥字母是e,对第一个明文字母p进行加密时,选用左边附加列上的字母e对应的那一行作为代替密码表,查处与p相对应的密文字母是T,依次类推即可得出明文。上述代码中的生成密钥部分为核心代码,只有密钥更长,才能保证密码算法的可靠性。解密算法和加密算法只需要减去密钥继续模26即可得到。 1.34 运行结果

13

密码学课程设计

1.35密码安全性分析

首先,破译的第一步就是寻找密文中出现超过一次的字母。有两种情况可能导致这样的重复发生。最有可能的是明文中同样的字母序列使用密钥中同样的字母加了密;另外还有一种较小的可能性是明文中两个不同的字母序列通过密钥中不同部分加了密,碰巧都变成了密文中完全一样的序列。假如我们限制在长序列的范围内,那么第二种可能性可以很大程序地被排除,这种情况下,我们多数考虑到4个字母或4个以上的重复序列。

其次,破译的第二步是确定密钥的长度,又看看这一段先: 密钥 F O R E S T F O R E S T F O R E S T F O R E S T F O R 明 文 b e t t e r t o d o w e l l t h a n t o s a y w e l l 密 文 G S K X W K Y C U S O X Q Z K L S G Y C J E Q P J Z C 第一个YC出现后到第二个YC的结尾一共有12个字母(U S O X Q Z K L S G Y C) 那么密钥的长度应是12的约数---1,2,3,4,6,12之中的一个(其中,1可排除)。 第三, 破译的时候,可以从一下几个方面进行考虑。1.A-E段,U-Z段以及O-T段的特征比较显著,可先从这些方面着手; 2.如果一些字符串出现的频率较多,不妨猜猜,特别要注意THE,-ING等的出现;3.要留意那些图表中没有出现的字母,很多时候也会是突破点,如X与Z的空缺;4.图表最好还是做一下,毕竟比较直观,好看 。

因此,利用单纯的数学统计方法就可以攻破维吉尼亚密码,所以在使用这种密码的过程中,我们尽量增加密钥的长度,只有密钥长度的足够长时,密码的使用才会越安全。

14

密码学课程设计

1.4古典密码Playfair

1.41古典密码Playfair概述

Playfair密码最为著名的多字母加密密码.它将明文中的双字母组合作为一个单元.并将这些单元转换为密文双字母的组合。Playfair算法基于一个 5x5的字母矩阵.该矩阵通过一个关键词构造。从左到右、从上到下填入该关键词的字母,并去除重复的字母(两个a只取一个);其次。按照字母表顺序将其余字母填入矩阵的剩余空问。字母I和J被算作一个字母,可以根据使用者的意愿在形成密文时确定用I或L。 1.42 算法原理与设计思路

Playfair算法根据下列规则一次对明文的两个字母进行加密。这两个字母构成一对。其加密规则如下:

(1)一对明文字母如果是重复的,则在这对明文字母中间插入一个填充字符,如x。因此,单词session将被分割成:se ss si on.

(2)如果分割后的明文字母对在矩阵的同一行中都出现,则分别用矩阵中其右侧的字母代替行的最后一个字母山行的E第一个字母代替。例如,on被加密成qo。而st被加密为tn。 (3)如果分割后的明文字母对在矩阵的一列中都出现,则分别用矩阵中其下方的字母代替列

的最后一个字母由列的第一个字母代替。例如,en被加密成nU。而aW被加密成ba。 (4)如果分割后的明文字母对既不在矩阵的同一列中都出现也不在矩阵的同一行中都出现。密文是这两个字母所在的长方形的另两个顶点。例如,8e被加密成nk,而cu被加密成ix(或ix)。

(5)如果明文有奇数个字母,末尾加一个无效字母。 1.43关键算法分析

15

密码学课程设计

上述代码主要是用来填充矩阵,首先将明文矩阵进行填充,也就是第一张图片所显示的,这是算法的关键,也是第一步所在。然后上面的算法中还有因为是将明文两两分组,即每两个明文分为一组,那么当明文为奇数的时候,就需要添加一个无关字符,使它可以达到偶数个,以方便分组。

在算法设计过程中,我一共设计了两个函数,即decrypt()加密函数,encrypt()解密函数,main()主函数。主函数中调用加密函数和解密函数,使程序可以比较顺利的进行。

16

密码学课程设计

1.44运行结果

1.45 密码安全性分析

尽管Playfair密码被认为是比较安全的,它仍然是相对容易攻破的。普莱费尔密码隐藏了的频率,但是该体制仍可以用统计分析方法来破译。因为它的明

文仍然完整地保留了明文语言的结果。几百个字母的密文就足够我们分析出规律了。在英文中各种连字:th,he,an,in,re,es,…

因此,Playfair密码对抗穷举攻击的效果比较差。即有26*26=676个双字母,利用现代计算机来分析,很短时间内就可以将其破解。

17

密码学课程设计

实验二 ElGamal 加密和签名

2.1 ElGamal加密和签名概述

2.2 算法原理和设计思路

ElGamal算法既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。 1.密钥对产生办法

首先选择一个素数p,两个随机数, g 和x,g, x < p, 计算 y = g^x ( mod p ),则其公钥为 y, g 和p。私钥是x。g和p可由一组用户共享。

ElGamal用于数字签名。被签信息为M,首先选择一个随机数k, k与 p - 1互质,计算a= g^k ( mod p )

再用扩展 Euclidean 算法对下面方程求解b:

18

密码学课程设计

M = xa + kb ( mod p - 1 )

签名就是( a, b )。随机数k须丢弃。 验证时要验证下式:

y^a * a^b ( mod p ) = g^M ( mod p )

同时一定要检验是否满足1<= a < p。否则签名容易伪造。 ElGamal签名的安全性依赖于乘法群(IFp)* 上的离散对数计算。素数p必须足够大,且p-1至少包含一个大素数。因子以抵抗Pohlig & Hellman算法的攻击。M一般都应采用信息的HASH值(如SHA算法)。ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。

2.一般的ElGam数字签名方案

在系统中有两个用户A和B,A要发送消息到B,并对发送的消息进行签名。B收到A发送的消息和签名后进行验证。 (1)系统初始化

选取一个大的素数p,g是GF(p)的本原元。h:GF(p)→GF(p),是一个单向Hash函数。系统将参数p、g和h存放于公用的文件中,在系统中的每一个用户都可以从公开的文件中获得上述参数。

(2)对发送的消息进行数字签名的过程

假定用户A要向B发送消息m [1,p-1],并对消息m签字。第一步:用户A选取一个x [1,p-1]作为秘密密钥,计算y= (mod p)作为公钥。将公钥y存放于公用的文件中。第二步:随机选取k [1,p-1]且gcd(k,(p-1))=1,计算r= (mod p)。对一般的ElGamal型数字签名方案有签名方程(Signature Equation):ax=bk+c(mod(p-1))。

其中(a,b,c)是(h(m),r,s)数学组合的一个置换。由签名方程可以解出s。那么(m,(r,s))就是A对消息m的数字签名。第三步:A将(m,(r,s))发送到B (3)数字签名的验证过程

当B接收到A发送的消息(m,(r,s)),再从系统公开文件和A的公开文件中获得系统公用参数p,g,h和A的公钥y。由(m,(r,s))计算出(a,b,c)验证等式: = (mod p)是否成立。

2.3 关键算法分析

19

密码学课程设计

2.4运行结果

20

密码学课程设计

实验三 Rabin加密和签名

3.1 Rabin加密解密概述

3.2 程序与算法

int mod_exp(int a,int b,int n) {

int tmp=a%n,ans=1; for(;b>0;b>>=1) { if(b&1)

{ans*=tmp;ans%=n;} tmp*=tmp;tmp%=n; }

return ans; }

int extended_euclid(int a, int b, int &x, int &y) {

int d; if(b == 0)

21

密码学课程设计

{x = 1; y = 0; return a;}

d = extended_euclid(b, a % b, y, x); y -= a / b * x; return d; }

int chinese_remainder(int len) { int i, d, x, y, m, n, ret; ret = 0; n = 1; for(i=0; i < len ;i++) n *= w[i]; for(i=0; i < len ;i++) {

m = n / w[i];

d = extended_euclid(w[i], m, x, y); ret = (ret + y*m*b[i]) % n; }

return (n + ret%n) % n; }

int main() {

int n,i; int p,q,M,N; int M1,M2,M3,M4;

cout<<\输入大素数p,q\

cin>>p>>q;

cout<<\输入需加密明文M\ cin>>M;

N = p*q; int C = (M*M)%N; cout<<\

22

密码学课程设计

int a1 = mod_exp( (int)C,((p+1)/4), p); int a2 = -(mod_exp( (int)C,((p+1)/4), p)); int b1 = mod_exp( (int)C,((q+1)/4) , p); int b2 = -(mod_exp( (int)C,((q+1)/4) , p)); b[0] = a1; b[1] = b1; w[0] = p; w[1] = q;

M1 = chinese_remainder(2);

b[0] = a1; b[1] = b2; w[0] = p; w[1] = q;

M2 = chinese_remainder(2);

b[0] = a2; b[1] = b1; w[0] = p; w[1] = q;

M3 = chinese_remainder(2);

b[0] = a2; b[1] = b2; w[0] = p; w[1] = q;

M4 = chinese_remainder(2);

3.3 运行结果

23

密码学课程设计

实验四 公钥密码算法RSA

24

密码学课程设计

4.1 公钥密码算法RSA概述

RSA密码体制是美国麻省理工学院(MIT)Rivest、Shami和Adleman于1978年提出来的,它是第一个理论上最为成功的公开密钥密码体制,它的安全性基于数论中的Euler定理和计算复杂性理论中的下述论断:求两个大素数的乘积是很容易计算的,但要分解两个大素数的乘积,求出它们的素数因子却是非常困难的,它属于NP—完全类,是一种幂模运算的加密体制。除了用于加密外,它还能用于数字签字和身份认证。下面将从各个方面来详细对RSA公钥体制进行研究。 4.2 算法原理与设计思想 RSA算法的过程

首先产生密钥,过程如下:

(1) 随机产生两个长度为K/2位的素数P 和 Q

(2) 计算公钥 publicKey=P*Q;(publicKey 是k位的长度)

(3) 随机产生一个加密密钥 keyE, 2<=keyE<=Φ(n)-1其中GCD(keyE, Φ(n))=1; 注意这是保证解密密钥keyE *keyD mod Φ(n)=1 有解的充要条件, Φ(n)称为n的欧拉函数,值为: Φ(n)=(P-1)*(Q-1)

(4) 求解解密密钥keyD=keyE-1 mod (n) ,keyE-1为解密密钥keyD的逆元 ,此公式原方程为(keyE*keyD mod (n)=1)

由此公钥,加密密钥,解密密钥全部产生。 其次 对明文加密或对密文进行解密,过程如下: (1) 加密: C = M(2) 解密: M = C算法流程图:

keyE

mod publicKey;其中M表示明文,C表示密文 mod publicKey. 其中M表示明文,C表示密文

keyD

25

密码学课程设计

图1为加密或解密流程图

4.3 关键算法分析

该算法是主要生成大素数的,

大素数的产生是算法实现的关图3 产生密钥流程图 图2 总的流程图

26

密码学课程设计

键。因此,我没有使用素数生成头文件或者类,而是采取用小素数生成大素数的方法,先找到一些随机素数,然后由随机素数生成大素数。

当算法产生了大素数后,接着就是生成公钥和私钥了,求解密密钥实际上是如何去解一次同余方程 ax ≡ 1 mod n。根据费马定理与欧拉定理给出了同余方程的解为: x=a

(Φ(n)-1)

mod n

由此可得出iKeyD*iKeyE≡ 1 mod Φ(n) 即iKeyD=iKeyE

(Φ(Φ(n))-1)

mod Φ(n)

27

密码学课程设计

4.4 运行结果

4.5 密码安全性分析

在公布RSA算法之后,在使用RSA密码体制和分析RSA算法发现了一系列的算法本身脆弱性及其存在的问题。

(1)RSA公钥密码体制在加密或解密变化中涉及大量的数值计算,其加密和解密的运算时间比较长,这比数据加密标准DES的计算量开销大,在一定程度上限制了它的应用范围,以致于实际使用RSA密码体制无法用软件产品,必须用超大规模集成电路的硬件产品。 (2)虽然提高N=P*Q的位数会大大提高RSA密码体制的安全性,但其计算量呈指数增长,以致使其实现的难度增大,实用性降低。

(3)RSA公钥密码体制的算法完整性(指密钥控制加密或解密变换的唯一性)和安全性(指密码算法除密钥本身外,不应该存在其它可破译密码体制的可能性)沿有等进一步完善。 (4)RSA算法面临着数学方法的进步和计算机技术飞跃发展带来的破译密码能力日趋增强的严重挑战。因子分解问题有了长跑的发展,1995年人类成功地分解了128位十进制数RSA密码算法,破译512位长的RSA指日可待。

尽管如此,自1978年RSA算法公布以来,公开密钥密码已从理论研究进入实际应用研究阶段。RSA公开密钥密码算法在信息交换过程中使用比较广泛,安全性比较高。以当前的计

28

密码学课程设计

算机水平,如选择1024位长的密钥(相当于300位十进制数字)就认为是无法攻破的。

实验总结和体会

经过这一段时间对密码学课程的深入学习和体会,我掌握和了解到了很多的知识,在密码学课程设计中,将这些知识灵活的应用起来,更加深了对密码学的认识。

第一个实验是古典密码实验。古典密码大多是由单表代换和置换产生的。这些密码体系曾经风靡一时,但是其单一的加密方法使得其很容易被统计攻击所破解。从而有了多表代换密码。但是随着科技的发展,穷举攻击还是能攻破它。虽然古典密码体系现在已经不在使用,但是其对于我们还是有借鉴意义和学习的价值。在编程中,我更深刻的了解到了古典密码的加密解密操作,也进一步的巩固的了课堂的只是。但是我也存在很大的不足。编程能力的不足导致我没有办法做出一个可视化界面,也没有办法把这四种加密方法合成一个程序。在以后的学习中我还要加强我的编程能力,进一步的学习。

第二个实验是ElGamal。在课设中我学会了通过数组随机选取其中的一个数,其次,我练习了一下程序调试,先通过取固定值得到一个正确的结果,再注释掉,取一般值得到一个结果,两相比较来发现并解决问题。同时,在遇到困难问题时,可以通过查书或上网寻找解决问题的办法,但是一定要有自己的思考。并且,我发现,当素数很大时,计算它的生产元时速度会很慢,等的时间很长,因此,我设定当算出一定数量的生成元时就停止继续运算,从算出来的生成元当中选取一个生成元即可。最后,对ELGamal数字签名有了更好的理解,ElGamal算法既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。

而从第三个实验RSA加密解密实验中,我对 RSA公钥密码体制进行了学习,学习了怎么样选取密钥长度。同时我也考虑到在实际的应用过程中,在满足安全性前提下应当降低计算的复杂度,提高信息加、解密的速度。在RSA算法中,最基本的算法主要包括模加、模乘、模逆和模幂运算。大数运算很费时间,尤其是大整数的模逆和模幂运算。但是整个过程也存在着不少的瑕疵,就是我的算法是在大数运算时间上浪费了很多的时间,导致算法是以牺牲时间复杂度为基础来完成的。但是,我相信,在以后的学习生活中,我将会不断改变改密码的可用性和可靠性。

总之,通过独立完成此次课设,在编程的过程中遇到了很多问题,发现了自己编程能力的不足以及课堂学习的局限,知道了只有通过动手实践才能真正的掌握所学的知识。并且在此次课设中,通过询问同学和上网查询资料,也在自己的努力下完成了编程任务,锻炼了自

29

密码学课程设计

己的分析问题和解决问题的能力。但是也有很多不是很懂的地方,例如一些算法的具体实施和实现,在老师和同学们的帮助下,我最终完成了密码学课程设计的实验,因此,特别感谢任老师和其他同学的帮忙。

同时,通过实际编写密码分析程序,也极大地激发了我对密码学的兴趣,希望在以后的学习中不断地积累和丰富密码学的相关理论与技术。

30

密码学课程设计

己的分析问题和解决问题的能力。但是也有很多不是很懂的地方,例如一些算法的具体实施和实现,在老师和同学们的帮助下,我最终完成了密码学课程设计的实验,因此,特别感谢任老师和其他同学的帮忙。

同时,通过实际编写密码分析程序,也极大地激发了我对密码学的兴趣,希望在以后的学习中不断地积累和丰富密码学的相关理论与技术。

30

本文来源:https://www.bwwdw.com/article/b2a6.html

Top