第二章传统加密技术_1

第二章传统加密技术_1
第二章传统加密技术_1

第二章传统加密技术

密码技术能够有效地解决网络安全中的信息机密性、完整性、真实性和不可否认性问题。

2.1基本知识

密码的历史极其久远,其起源可以追溯到远古时代。相传在古罗马的一次战役中,兵困城内的部队因多日无法与城外的大部队联络,不久便陷入弹尽粮绝、走投无路的困境。尽管城外的部队不断地发动猛烈的营救战役,但终因缺乏里应外合的配合而屡屡受挫。就在这万般无奈、近乎坐以待毙之际,一个想法实然浮现在一个官兵的脑海里。为何不利用稠密的头发作掩护呢?于是,一个被剃得光溜溜的士兵头上写上了里应外合的作战方案,几天后,打扮成农民模样的他顺利地闯出了重重包围(因为敌人没有发现他头发中的秘密),而后他们取得了战争的全面胜利。

二战时期的一些资料也表明,密码对于军事的重要性。德国、日本之所以在二战中惨遭失败,其中一个重要的原因是其密码体制被英、美所破译。中国电视剧《长征》中也提到了共产党破解国民党密码本的一些细节。由此可见,自古以来,密码技术被广泛应用于军事、机要或间谍等工作中。然而,直至二次世界大战结束,密码技术对于公众而言始终处于一种未知的黑暗当中,让人在感到神秘之余,又有几分畏惧。

1918年,William F.Friedman发表论文“The Index of Coincidence and Its Applications in Cryptgraphy)(“重合指数及其在密码学中的应用”)。

1949年,Claude Shannon(香农)的论文“The Communication Theory of Secrecy Systems)(“保密系统的通信理论”)奠定了密码学的理论基础。

1967年,David Kahn(戴维.卡恩)收集整理了第一次世界大战和第二次世界大战的大量史料,创作出版了“The Codebreakers“(破译者),为密码技术公开化、大众化拉开了序幕。

20世纪70年代是密码学发展的重要时期,有两件重大事件发生。

其一,1976年11月23日,DES(Data Encryption

Standard)算法被确认为联邦标准算法。1998年正式退役。

其二,1976年11月,Diffie与Hellman发表了一篇题为“New directions in cryptography”(密码学新方向)的论文,开辟了公开密钥学的新领域,成为现代密码学的一个里程碑。1978年,R.L.Rivest,A.Shamir和L.Adleman实现了RSA公钥密码体制,它成为公钥密码的杰出代表和事实标准。

1984年,Bennett.Charles H.,Brassard.Gille提出了基于量子理论的(现称为BB84协议),从此量子密码理论宣告诞生。

量子密码不同于以前的密码技术,是一种可以发现窃听行为、安全性基于量子定律的密码技术,可以抗击具有无限计算能力的攻击,有人甚至认为,在量子计算机诞生之后,量子密码技术可能成为惟一的真正安全的密码技术。

1985年,N.Kobliz和https://www.360docs.net/doc/0211625405.html,ler把椭圆曲线理论应用到公钥密码技术中。

密码技术的另一个重要方向——流密码(也称序列密码)理论也取得了重要的进展。1989年有人把混沌理论引入流密码及保密通信理论中,为序列密码理论开辟了一条新的途径。

2000年10月,由比利时密码学家Jon Daemen,Vincent Rijmen提交的Rijndael算法被确定为AES算法,接替了DES算法。

2.1.1 加密与解密

如图2-1:

信源:消息的发送者

信宿:消息的接收者

明文:原始的消息

密文:经过变换(称为加密)的消息。

信道:用来传输消息的通道。

密钥:通信过程中,信源为了和信宿通信,首先要选择的适当加密参数。

加密:C=E k

1

(m)

解密:m= D k

2 (C)= D k

2

( E k

1

(m))

加密算法:对明文进行加密时采用的一组规则。

解密算法: 对密文进行解密时采用的一组规则。

2.1.2密码编码与密码分析

“攻”与“守”犹如“矛”与“盾”,是密码研究中密不可分的两个方面。

密码分析是攻击者为了窃取机密信息所做的事情,也是密码体制设计者的工作。设计者的目的是为了分析体制的弱点,以期提高体制的安全强度。

密码分析大体分为二类:穷举法,密码分析学

图2-1加密和解密过程

穷举法:就是对可能的密钥或明文的穷举。穷举密钥时,用可能密钥解密密文,直到得到有意义的明文,确定出正确的密钥和明文。穷举明文,就是将可能的明文加密,将所得密文与截取的密文对比,从而确定正确的明文。这一方法主要用于公钥体制和数字签名。阻止穷举的方法有:增加密钥的长度,在明文、密文中增加随机冗余信息等等。

密码分析学:这种攻击依赖于算法的性质和明文的一般特征或某些明密文对。这种形式的攻击企图利用算法的特征来推导出特别的明文或使用的密钥。如果这种攻击能成功地推导出密钥,那么影响将是灾难性的:将会危及所有未来和过去使用该密钥加密消息的安全。

理论上,除了一文一密的密码体制外,没有绝对安全的密码体制。所以,称一个密码体制是安全的,一般是指密码体制在计算上是安全的,即:密码分析者为了破译密码,穷尽其时间和存储资源仍不可得,或破译所耗费的成本已超出了因破译密码而获得的收益。

根据密码分析者对明、密文掌握的程度,攻击主要可分为五种:

2.2隐写术

隐写术是将秘密消息隐藏在其他消息中。中国历史上最常用的隐写方式,就是纸上一篇文字,一旦纸浸水后,将显示出真正的内容。现在,人们可以在图像中隐藏秘密消息,即用消息比特来替代图像的每个字节中最不重要的比特。因为大多数图像标准所规定的顔色等级比人类眼睛能够觉察到的要多得多,所以图像并没有多大改变,但是,秘密消息却能够在接收端剥离出来。用这种方法可在1024*1024灰色度的图片中存储64K 字节的消息。

又如:在一整段文本中用每个单词的第一个字母连起来就可以拼出隐藏的消息。

隐写术的主要缺点是:它要用大量的开销来隐藏相对少量的信息比特;且一旦该系统被发现,就会变得毫无价值。

2.3古典密码学

密码研究已有数千年的历史,虽然许多古典密码已经经受不住现代手段的攻击,但是它们在密码发展史上具有不可磨灭的贡献,许多古典密码思想至今仍被广泛运用。

2.3.1置换与替代

1.置换密码

置换法是通过变动明文块内部的字符排列次序来达到加密信息的目的。例如明文number2,我们可以通

过对它内部包含的字符、符号或数字重新排列次序使它变为密文,这个过程叫做置换。

如:把第2个字符“u”移到第1个位置,把第7个字符“2”移到第2个位置,把第3个字符“m”移到第6个位置…见下图所示,就可以把明文number2置换为密文u2brnme.

n u m b e r 2

u 2 b r n m e

置换法加密示例

密钥即为置换和逆置换。

置换为:[2,7,4,6,1,3,5],

逆置换为:[5,1,6,3,7,4,2]

课堂练习:明文为I am very glad.置换为[2,5,6,10,4,1,9,3,11,8,7],其密文是什么?逆置换是什么?

答:

密文为AERAVILMDGY, 逆置换是[6,1,8,5,2,3,11,10,7,4,9]

一种更复杂的方案是把消息一行一行地写成矩形块,然后按列读出,但是把列的次序打乱。列的次序就是算法的密钥。

如:明文为:Attack Postpone Duntilt Woamxyz

将明文按行的形式放置。密钥为:4 3 1 2 5 6 7

密钥为:4 3 1 2 5 6 7

明文为:A T T A C K P

O S T P O N E

D U N T I L T

W O A M X Y Z

按列的方式读出,即为密文:

密文为:TTNAAPTMTSUOAODWCOIXKNLYPETZ

密文恢复为明文的过程如下:

密钥的逆置换为: 3 4 2 1 5 6 7

密文按矩阵展开为:T A T A C K P

T P S O O N E

N T U D I L T

A M O W X Y Z

明文为:A T T A C K P

O S T P O N E

D U N T I L T

W O A M X Y Z

2.替代密码

替代密码就是明文中每一个字符被替换成密文中的另外一个字符,接收者对密文进行逆替换以恢复明文。

(1) Caesar 替换法

有记载表明,在古罗马就已经使用对称密码技术。据说有一位名叫Julius Caesar 的国王在作战时曾使用过一种密码技术(如今把这种密码技术称为“凯撒密码”技术)。该密码技术的思路是这样的:将26个英文字母(小写、斜体)a ,b ,c ,…依次排列,z 后面再接排a ,b ,c ,…取移位间隔为3,将每个字母(明字符)由与它间隔为3的字母来替代(密字符),由此构成了一张明字符和密字符的对照表,称为密码表。

例如,密码表如表2-1所示(密码符用大写、正体表示)。

例如,取明文块M= network ,相应的密文块C=QHWZRUN 。

因为k 的取值可以在1至25之间变化,所以总共可以得到25个不同的密码表。例如,如果取k=5,那么明文M=network 加密后就变为密文C=SJYBTWP 。

可见,同样的明文,如果k 的取值不同,那么就会得到不同的密文。这个k 就是这种密码技术的密钥。因为k 的取值最多只有25

种,所以这种密码技术在计算技术如此发达的今天已表2-1 k=3密码表

经不再安全。但从这种技术中我们可以了解它的加密思想,从而可以古为今用。

(2)Playfair密码

Playfair密码是英国科学家Chaeles Wheatstone 于1845年发明的,但是用了他的朋友Barron Playfai 的名字。

Playfair算法基于一个5*5的字母矩阵,该矩阵通过一个密钥构造。例如,密钥为Playfair,相应的矩阵如图2-2所示。

其矩阵的构造如下:首先,从左到右、从上到下填入该密钥的字母,并去除重复的字母(两个A只取一个);其次,按照字母表顺序将其余字母填入矩阵的剩余空间。字母I和J被算作一个字母,可以根据使用者的意愿在形成密文时确定用I或J。

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

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

(2)如果分割后的明文字母对在矩阵的同一行中都出现,那么分别用矩阵中其右侧的字母代替,行的最后一个字母由行的第一个字母代替。例如,on被加密成QO,而st被加密成TN。

(3)如果分割后的明文字母对在矩阵的同一列中都出现,则分别用矩阵中其下方的字母代替,列的最后一个字母由列的第一个字母代替。例如,en被加密成NU,而aw被加密成BA。

(4)否则,明文对中的每一个字母将由与其同行,且与另一个字母同列的字母代替。比如,se被加密成NK,而cu被加密成IX(或JX)。

Playfair密码与单字母替代密码相比有明显的优势:其一,双字母有26*26=676种组合方式,识别各种双字母组合比单字母困难得多;其二,各种字母组的相对频率范围也更为广泛,使频率分析更加困难。因此,Playfair曾被认为是不可破译的,英国陆军在第一次世界大战中采用了它,二战中它仍被美国陆军和其他同盟国大量使用。

课堂练习:密钥为monarchy,把明文balloon通过Playfair加密算法后得到的密文是什么?解密过程如何?

答案:

先把明文变成ba lx lo on这样四个字母对。

密文为IB SU PM NA

思考题:

1.古典密码学主要采用哪两种技术?

2.密码学包含哪两个部分?

课后作业:

1.用“凯撒密码”技术破译下列密文:

OGGV OG CHVGT VJG VQIC RCTVA

要求说明密钥K。

2. 明文为He is 20 years old.置换为[2,14,6,13,4,1,9,12,11,8,7,3,5,10],其密文是什么?逆置换是什么?

信息加密技术

信息加密技术研究 摘要:随着网络技术的发展,网络在提供给人们巨大方便的同时也带来了很多的安全隐患,病毒、黑客攻击以及计算机威胁事件已经司空见惯,为了使得互联网的信息能够正确有效地被人们所使用,互联网的安全就变得迫在眉睫。 关键词:网络;加密技术;安全隐患 随着网络技术的高速发展,互联网已经成为人们利用信息和资源共享的主要手段,面对这个互连的开放式的系统,人们在感叹现代网络技术的高超与便利的同时,又会面临着一系列的安全问题的困扰。如何保护计算机信息的安全,也即信息内容的保密问题显得尤为重要。 数据加密技术是解决网络安全问要采取的主要保密安全措施。是最常用的保密安全手段,通过数据加密技术,可以在一定程度上提高数据传输的安全性,保证传输数据的完整性。 1加密技术 数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理。使其成为不可读的一段代码,通常称为“密文”传送,到达目的地后使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径达到保护数据不被人非法窃取、修改的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。数据加密技术主要分为数据传输加密和数据存储加密。数据传输加密技术主要是对传输中的数据流进行加密,常用的有链路加密、节点加密和端到端加密三种方式。 2加密算法 信息加密是由各种加密算法实现的,传统的加密系统是以密钥为基础的,是一种对称加密,即用户使用同一个密钥加密和解密。而公钥则是一种非对称加密方法。加密者和解密者各自拥有不同的密钥,对称加密算法包括DES和IDEA;非对称加密算法包括RSA、背包密码等。目前在数据通信中使用最普遍的算法有DES算法、RSA算法和PGP算法等。 2.1对称加密算法 对称密码体制是一种传统密码体制,也称为私钥密码体制。在对称加密系统中,加密和解密采用相同的密钥。因为加解密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄漏出去,这样就可以实现数据的机密性和完整性。对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。DES算法是目前最为典型的对称密钥密码系统算法。 DES是一种分组密码,用专门的变换函数来加密明文。方法是先把明文按组长64bit分成若干组,然后用变换函数依次加密这些组,每次输出64bit的密文,最后将所有密文串接起来即得整个密文。密钥长度56bit,由任意56位数组成,因此数量高达256个,而且可以随时更换。使破解变得不可能,因此,DES的安全性完全依赖于对密钥的保护(故称为秘密密钥算法)。DES运算速度快,适合对大量数据的加密,但缺点是密钥的安全分发困难。 2.2非对称密钥密码体制 非对称密钥密码体制也叫公共密钥技术,该技术就是针对私钥密码体制的缺陷被提出来的。公共密钥技术利用两个密码取代常规的一个密码:其中一个公共密钥被用来加密数据,而另一个私人密钥被用来解密数据。这两个密钥在数字上相关,但即便使用许多计算机协同运算,要想从公共密钥中逆算出对应的私人密钥也是不可能的。这是因为两个密钥生成的基本原理根据一个数学计算的特性,即两个对位质数相乘可以轻易得到一个巨大的数字,但要是反过来将这个巨大的乘积数分解为组成它的两个质数,即使是超级计算机也要花很长的时间。此外,密钥对中任何一个都可用于加密,其另外一个用于解密,且密钥对中称为私人密钥的那一个只有密钥对的所有者才知道,从而人们可以把私人密钥作为其所有者的身份特征。根据公共密钥算法,已知公共密钥是不能推导出私人密钥的。最后使用公钥时,要安装此类加密程序,设定私人密钥,并由程序生成庞大的公共密钥。使用者与其向联系的人发送

密码技术复习题

一、选择题 1、密码学包括哪两个相互对立的分支(D) A.对称加密与非对称加密 B.序列算法与分组算法 C.DES和RSA D.密码编码学与密码分析学 2、在密码学中,需要被变换的原消息被称为什么?D A.密文 B.算法 C.密码 D.明文 3、下列古典密码算法是置换密码的是(C) A.加法密码 B.Hill密码 C.多项式密码 D.栅栏式密码 4、乘数密码是(C) A.替换与变换加密 B.变换加密 C.替换密码 D.都不是 5、关于摘要函数,叙述不正确的是(C) A.输入任意大小的消息,输出时一个长度固定的摘要 B.输入消息中的任何变动都会对输出摘要产生影响 C.输入消息中的任何变动都不会对输出摘要产生影响 D.可以防止消息被篡改 6、下面关于密码算法的阐述,__D_是不正确的。 A.对于一个安全的密码算法,即使是达不到理论上的不破的,也应当实际 上是不可破的。即是说,从截获的密文或某些已知明文密文对,要决定 密钥或任意明文在计算机上是不可行的。 B.系统的保密性不依赖与对加密体制或算法的保密,而依赖于密钥(这就是 著名的Kerckhoff原则) C.数字签名的的理论基础是公钥密码体制。 D.对于使用公钥密码体制加密的密文,知道密钥的人,就一定能够解密。 7、通常使用_ C_来实现抗抵赖 A.加密 B.时间戳

C.签名 D.数字指纹 8、根据所依据的难解问题,除了_C_以外,公钥密码体制分为以下分类 A.大整数分解问题(简称IFP) B.椭圆曲线离散对数问题(简称ECDLP) C.生日悖论 D.离散对数问题(简称DLP) 9、下列算法属于Hash 算法的是(C) A.DES B.IDEA C.SHA D.RSA 10、以下各种加密算法中属于古典加密算法的是(A) A.Caesar替代法 B.DES加密算法 C.IDEA加密算法 D.Diffie-Hellman加密算法 11、以下各种加密算法中属于双钥制加密算法的是(D) A.DES加密算法 B.Caesar替代法 C.Vigenere算法 D.Diffie-Hellman加密算法 12、PKI是(B) A.Private Key Infrastructure B.Public Key Infrastructure C.Public Key Institute D.Private Key Institue 13、PKI解决信息系统中的_A__问题 A.身份信任 B.权限管理 C.安全审计 D.加密 14、下面哪一项不是一个公开密钥基础设施(PKI)的正常的部件(D) A.数字签名 B.CA中心 C.密钥管理协议 D.对称加密密钥

四种常见的电子邮件加密方法

四种常见的电子邮件加密方法 针对电子邮件的犯罪案件越来越多,用户在享受电子邮件快捷便利的服务同时还要承受邮件泄密带来的后果,有些邮件泄密后果并不严重、有些确是灾难性的。为了提高邮件信息的安全性,目前有效的方法是进行邮件加密,通过加密使邮件只能被指定的人进行浏览,确保邮件的安全。 目前常见的邮件加密方式有以下四种: 第一种:利用对称加密算法加密邮件 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。利用对称密码算法对电子邮件进行加密,需要解决密码的传递,保存、交换。这种方式的邮件加密系统目前很少使用。 典型基于对称加密的邮件加密产品:Office口令加密,PDF口令加密、WinRAR口令加密、WinZip口令加密。(这种方式用于电子邮件加密上只能用于加密附件)。 第二种:利用传统非对称密钥体系(PKI/CA)加密电子邮件

电子邮件加密系统目前大部分产品都是基于这种加密方式。PKI(Public Key Infrastructure)指的是公钥基础设施, CA(Certificate Authority)指的是认证中心。PKI从技术上解决了网络通信安全的种种障碍;CA从运营、管理、规范、法律、人员等多个角度来解决了网络信任问题。由此,人们统称为“PKI/CA”。从总体构架来看,PKI/CA主要由最终用户、认证中心和注册机构来组成。PKI/CA的工作原理就是通过发放和维护数字证书来建立一套信任网络,在同一信任网络中的用户通过申请到的数字证书来完成身份认证和安全处理。注册中心负责审核证书申请者的真实身份,在审核通过后,负责将用户信息通过网络上传到认证中心,由认证中心负责最后的制证处理。证书的吊销、更新也需要由注册机构来提交给认证中心做处理。总的来说,认证中心是面向各注册中心的,而注册中心是面向最终用户的,注册机构是用户与认证中心的中间渠道。公钥证书的管理是个复杂的系统。一个典型、完整、有效的CA系统至少应具有以下部分:公钥密码证书管理;黑名单的发布和管理;密钥的备份和恢复;自动更新密钥;历史密钥管理;支持交叉认证,等等。PKI/CA认证体系相对成熟但应用于电子邮件加密系统时也存在着密匙管理复杂,需要先交换密匙才能进行加解密操作等,著名的电子邮件加密系统PGP就是采用这套加密流程进行加密。这种加密方法只适用于企业、单位和一些高端用户,由于CA证书获得麻烦,交换繁琐,因此这种电子邮件加密模式一直很难普及。 典型基于PKI/CA的邮件加密产品:此类产品基本是定制产品。 第三种:利用链式加密体系进行电子邮件加密 这种机制以一个随机生成的密钥(每次加密不一样),再用对称加密算法(如3DES、IDEA算法)对明文加密,然后用RSA非对称算法对该密钥加密。这样

传统加密技术

第二章传统加密技术 密码技术能够有效地解决网络安全中的信息机密性、完整性、真实性和不可否认性问题。 2.1基本知识 密码的历史极其久远,其起源可以追溯到远古时代。相传在古罗马的一次战役中,兵困城内的部队因多日无法与城外的大部队联络,不久便陷入弹尽粮绝、走投无路的困境。尽管城外的部队不断地发动猛烈的营救战役,但终因缺乏里应外合的配合而屡屡受挫。就在这万般无奈、近乎坐以待毙之际,一个想法实然浮现在一个官兵的脑海里。为何不利用稠密的头发作掩护呢?于是,一个被剃得光溜溜的士兵头上写上了里应外合的作战方案,几天后,打扮成农民模样的他顺利地闯出了重重包围(因为敌人没有发现他头发中的秘密),而后他们取得了战争的全面胜利。 二战时期的一些资料也表明,密码对于军事的重要性。德国、日本之所以在二 战中惨遭失败,其中一个重要的原因是其密码体制被英、美所破译。中国电视剧《长征》中也提到了共产党破解国民党密码本的一些细节。由此可见,自古以来,密码技术被广泛应用于军事、机要或间谍等工作中。然而,直至二次世界大战结束,密码技术对于公众而言始终处于一种未知的黑暗当中,让人在感到神秘之余,又有几分畏惧。 当今,密码应用无处不在:社交、电子商务…… 1918年,William F.Friedman发表论文“The Index of Coincidence and Its Applications in Cryptgraphy)(“重合指数及其在密码学中的应用”)。 1949年,Claude Shannon(香农)的论文“The Communication Theory of Secrecy Systems)(“保密系统的通信理论”)奠定了密码学的理论基础。 1967年,David Kahn(戴维.卡恩)收集整理了第一次世界大战和第二次世界大战的大量史料,创作出版了“The Codebreakers“(破译者),为密码技术公开化、大众化拉开了序幕。 20世纪70年代是密码学发展的重要时期,有两件重大事件发生。

第3章 信息加密技术

凯撒(Cacser)密码 设k=3;对于明文P=let us meet at five pm at old place则 f(l)=(12+3) mod 26= 15= o f(e)=(5+3)mod 26= 8= h f(t)=(20+3)mod 26= 23= w ┆ f(e)=(19+3) mod 26= 22= V 所以,密文C= C= E E k (P)= ohw ohw rv rv dw dw ilyh ilyh sp sp sp dw dw dw rog rog sodfh。 2015-4-1121

2015-4-1122“Let us meet at five pm at old place ” key: k = 3 “ohw ohw rv rv dw dw ilyh ilyh sp sp sp dw dw dw rog rog sodfh sodfh” ”Key: k = 3 “Let us meet at five pm at old place ”

2015-4-1123 l 任意替换:26!>4x1026 可能的key, 大于56位DES 的密钥空间。l 基于语言统计规律仍可破译

2015-4-1124 多字母替换密码--平稳分布 ?单字母替换E 1和E 2,分别用于明文信息中奇数和偶数位置的字符,从而打乱密文中的字母分布频率特性(通常E 2应为的E 1补充)例1: E 1(T)=a , E 2(T)=b ; E 1(X)=b ,E 2(X)=a E 1(a)=(3(a)=(3* *a) mod 26 E 2(a)=( (5(a)=( (5* *a) +13) mod 26)TREAT YIMPO SS IB L E fumnf fumnf dyvtf dyvtf cz ys h h

古典加密实验报告

古典密码算法 一、实验目的 学习常见的古典密码学算法,通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。 二、实验要求 分析替代密码算法和置换密码算法的功能需求,详细设计实现替代密码算法和置换密码算法的数据结构和流程,给出测试用例和测试步骤,得出测试和结论。替代密码算法和置换密码算法的实现程序必须提供加密和解密两个接口:int encrypt()和int decrypt()。当加密或者解密成功时返回CRYPT_OK,失败时返回CRYPT_ERROR。 三、实验原理 古典密码算法曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍两种算法:替代密码和置换密码。 1.替代密码的原理是使用替代法进行加密,就是将明文由其它的字母、数字或符合所代替后形成密文。这里每个明文字母对应的密文字母可能是一个,也可能是多个。接收者对密文进行逆向替换即可得到明文。 2.置换密码算法的原理是不改变明文字符,而是按照某一规则重新排列消息中的比特或字符顺序,才而实现明文信息的加密。置换密码有时又称为换位密码。 我实验过程中替代密码是单表替换,用字母的下一个字母代替:for(j = 0; j < i; j++)

{ if(96 < Mingwen[j]&&Mingwen[j] < 123) { Miwen[j] = 'a' + (Mingwen[j] - 'a' + 1) % 26; } else { Miwen[j] = 'A' + (Mingwen[j] - 'A' + 1) % 26; } } 置换加密主要是对密钥进行整理,还有就是动态分配二维数组,将明文和密文填充置的过程,换密码关键代码如下: for(a = 0; a < k; a++) { for(b = 0; b < hang; b++) { Miwen[i] = p[b][ord[j]]; i++; } j++; } for(a = 0; a < 26; a++) { for(b = 0; b < k; b++) { if(key1[b] == alphatable[a]) { ord[b] = ind++; } } } 具体加密见下图:

古典密码算法

实验一古典密码算法 古典密码算法曾经被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要对象是文字信息,利用密码算法实现文字信息的加密和解密。古典密码学可以分为代替密码(也叫做移位密码)和置换密码(也叫做换位密码)两种,其中代替密码典型的有Caesar密码,数乘密码和仿射变换等,置换密码有单表置换和多表置换等。 一、实验目的 1.理解代替密码学加密过程 2.理解置换密码学加密过程 二、实验环境 Windows,交换网络结构,每组2人,VC++6.0,密码工具 三、实验原理 1.Caesar(恺撒)密码 Caesar密码是传统的代替加密法,当没有发生加密(即没有发生移位)之前,其置换表如1-1所示。 加密时每一个字母向前推移k位,例如当k=5时,置换表如1-2所示。 于是对于明文:data security has evolved rapidly 经过加密后就可以得到密文:IFYF XJHZWNYD MFX JATQAJI WFUNIQD 若令26个字母分别对应整数0~25,如表1-3所示。 则Caesar加密变换实际上是: c = (m + k) mod 26

其中m是明文对应的数据,c是与明文对应的密文数据,k是加密用的参数,也称为密钥。 很容易得到相应的Caesar解密变换是: m = D(c) = (c – k) mod 26 例如明文:data security 对应的数据序列: 3 0 19 0 18 4 2 20 17 8 19 24 当k = 5时经过加密变换得到密文序列: 8 5 24 5 23 9 7 25 22 13 24 3 对应的密文为: I F Y F X J H Z W N Y D 2.单表置换密码 单表置换密码也是一种传统的代替密码算法,在算法中维护着一个置换表,这个置换表记录了明文和密文的对照关系。当没有发生加密(即没有发生置换)之前,其置换表如1-4所示。 在单表置换算法中,密钥是由一组英文字符和空格组成的,称之为密钥词组,例如当输入密钥词组:I LOVE MY COUNTRY后,对应的置换表如表1-5所示。 在表1-2中 ILOVEMYCUNTR是密钥词组I LOVE MY COUNTRY略去前面已出现过的字符O 和Y依次写下的。后面ABD……WXZ则是密钥词组中未出现的字母按照英文字母表顺序排列成的,密钥词组可作为密码的标志,记住这个密钥词组就能掌握字母加密置换的全过程。 这样对于明文:data security has evolved rapidly,按照表1-2的置换关系,就可以得到密文:VIKI JEOPHUKX CIJ EQDRQEV HIFUVRX。 四、实验步骤 主机A、B为一组,C、D为一组,E、F为一组。首先使用“快照X”恢复Windows系统环境。 1.Caesar密码 (1)手动完成Caesar密码 1)在实验原理部分我们已经了解了Caesar密码的基本原理,那么请同学们写出当密 钥k=3时,对应明文:data security has evolved rapidly的密文: _______________________________________________________________________。 2)进入实验平台,单击工具栏中的“密码工具”按钮,启动密码工具,在向导区点击 “Caesar密码”。在明文输入区输入明文:data security has evolved rapidly。

密码技术专题(二)——古典密码体制

密码技术专题(二)—古典密码体制 ?1、密码体制的概念 o明文信源 o密文 o密钥与加密运算 o密码体制 ?2、古典密码体制的发展 o古典加密方法 o代替密码 o换位密码 o转轮密码 ?3、几种典型的古典密码体制 o CAESAR体制 o双字的Playfair体制 o维吉尼亚体制 o Hill体制 我们已经知道,一个密码体制由明文信源、密文、密钥与加密运算这四个基本要素构成,下面我们将进一步给出它们的数学模型。 1、明文信源 直观地讲,明文信源就是明文字母表或者明文字母。比如所有的英文字母、全部的中文字符就是典型的明文字母表。准确一点,明文信源还应当包含明文字母的概率分布。如果用X表示明文字母表,则它的元素x∈X则就是明文字母。在明文字母表中,不同的明文字母出现的频率往往是不同的,比如在26个英文字母中,一般来说字母“e”的频率最高;而在汉字中,可能是“的”字频率最高。 所以,一个明文信源记为S=[X,p(x)],其中X为明文字母表,p(x)为明文字母x∈X 出现的概率,而且p(x)满足如下条件:对任何x∈X,p(x)≥0,且∑p(x)=1。 2、密文 密文由密文字母表Y和密文字母y∈Y组成,密文字母表一般是指密文可能使用的全部字母的集合,而y∈Y是它的元素。密文字母表可以与明文字母表相同,也可以不同。 3、密钥与加密运算 密钥用来从密码体制的一组加密运算中选择一个加密运算(或者称为加密步),密钥允许你按照以前制定的规则改变加密,比如每天,或每份报之后,或者每个

字符之后。通常,密钥的组织和编排须利于它们允许通过简单的规则产生单独的加密步。加密方法的组合复杂度取决于在此方法下密钥的数量。如果用K表示密钥空间,也就是选择加密步的参数集合,k∈K则称为一个密钥。 加密步就是明文字母表X到密文字母表Y的一个映射:E:X→Y,对每个x∈X。由于加密步并不是单一的,而是一族运算,因此我们就可以记为Ek=Ek(x),其中x∈X,k∈K。除特殊的编码方法外,如多名码或多音码,对于每个k∈K,Ek(x)都是X到Y的1-1映射。 通常要求用户对密钥的选择是随机的,而且密钥的选择与明文无关。这样密钥的使用概率p(k),k∈K与明文的出现概率就是互相独立的。 4、密码体制 在明确了密码体制的几个组成要素的数学模型后,我们就可以给出一个密码体制的数学模型。我们定义S={X,Y,K,p(x,k),Ek(x), x∈X,k∈K}为一个密码体制。实际上从运算的角度讲,密码体制包含加密系统和解密系统两部分。 如果一个密码体制设计完成,则相应的明文、密文、密钥之间的关系也就随之确定,用概率方法表示为:对任何x∈X,k∈K,y∈E(X),p(x,y,k)=p(x,k)=p(x)p(k)。 密码技术的应用一直伴随着人类文化的发展,其古老甚至原始的方法奠定了现代密码学的基础。使用密码的目标就是使一份消息或记录对非授权的人是不可理解的。可能有人认为这很容易,但你必须考虑原定的接收方是否能解读消息。如果接收方是没有经验的,随便写个便条他也可能很长时间无法读懂。因此不一定要求加密和解密方法特别复杂,它必须适应使用它的人员的智力、知识及环境。下面我们介绍古典密体制发展演化的过程。 1、古典加密方法 最为人们所熟悉的古典加密方法,莫过于隐写术。它通常将秘密消息隐藏于其它消息中,使真正的秘密通过一份无伤大雅的消息发送出去。隐写术分为两种,语言隐写术和技术隐写术。技术方面的隐写比较容易想象:比如不可见的墨水,洋葱法和牛奶法也被证明是普遍且有效的方法(只要在背面加热或紫外线照射即可复现)。语言隐写术与密码编码学关系比较密切,它主要提供两种类型的方法:符号码和公开代码。 符号码是以可见的方式,如手写体字或图形,隐藏秘密的书写。在书或报纸上标记所选择的字母,比如用点或短划线,这比上述方法更容易被人怀疑,除非使用显隐墨水,但此方法易于实现。一种变形的应用是降低所关心的字母,使其水平位置略低于其它字母,但这种降低几乎让人觉察不到。 一份秘密的信件或伪装的消息要通过公开信道传送,需要双方事前的约定,也就是需要一种公开代码。这可能是保密技术的最古老形式,公开文献中经常可以看到。东方和远东的商人和赌徒在这方面有独到之处,他们非常熟练地掌握了手势

10.信息加密技术简介

信息加密技术简介 随着互联网的快速发展,计算机信息的保密问题显得越来越重要。数据保密变换,或密码技术,是对计算机信息进行保护的最实用和最可靠的方法。 一、信息加密概述 密码学是一门古老而深奥的学科,它对一般人来说是陌生的,因为长期以来,它只在很少的范围内,如军事、外交、情报等部门使用。计算机密码学是研究计算机信息加密、解密及其变换的科学,是数学和计算机的交义学科,也是一门新兴的学科。随着计算机网络和计算机通讯技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展起来。在国外,它已成为计算机安全主要的研究方向,也是计算机安全课程教学中的主要内容。 密码是实现秘密通讯的主要手段,是隐蔽语言、文字、图象的特种符号。凡是用特种符号按照通讯双方约定的方法把电文的原形隐蔽起来,不为第三者所识别的通讯方式称为密码通讯。在计算机通讯中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传输出去,使信息在传输过程中即使被窃取或载获,窃取者也不能了解信息的内容,从而保证信息传输的安全。 任何一个加密系统至少包括下面四个组成部分: (1)、未加密的报文,也称明文。 (2)、加密后的报文,也称密文。 (3)、加密解密设备或算法。 (4)、加密解密的密钥。

发送方用加密密钥,通过加密设备或算法,将信息加密后发送出去。接收方在收到密文后,用解密密钥将密文解密,恢复为明文。如果传输中有人窃取,他只能得到无法理解的密文,从而对信息起到保密作用。 二、密码的分类 从不同的角度根据不同的标准,可以把密码分成若干类。 (一)按应用技术或历史发展阶段划分: 1、手工密码。以手工完成加密作业,或者以简单器具辅助操作的密码,叫作手工密码。第一次世界大战前主要是这种作业形式。 2、机械密码。以机械密码机或电动密码机来完成加解密作业的密码,叫作机械密码。这种密码从第一次世界大战出现到第二次世界大战中得到普遍应用。 3、电子机内乱密码。通过电子电路,以严格的程序进行逻辑运算,以少量制乱元素生产大量的加密乱数,因为其制乱是在加解密过程中完成的而不需预先制作,所以称为电子机内乱密码。从五十年代末期出现到七十年代广泛应用。 4、计算机密码。是以计算机软件编程进行算法加密为特点,适用于计算机数据保护和网络通讯等广泛用途的密码。 (二)按保密程度划分: 1、理论上保密的密码。不管获取多少密文和有多大的计算能力,对明文始终不能得到唯一解的密码,叫作理论上保密的密码。也叫理论不可破的密码。如客观随机一次一密的密码就属于这种。 2、实际上保密的密码。在理论上可破,但在现有客观条件下,无法通过计算来确定唯一解的密码,叫作实际上保密的密码。

多表古典密码的乘法加密运算

多表古典密码的乘法加密运算 实验目的: 1. 熟练掌握多表古典密码简单乘法加密算法原理及实现; 2. 掌握多表古典密码简单乘法加密算法的应用; 实验内容: 1、写出多表(双表)古典密码的乘法加密运算的算法、程序设计; 2、输入模q(根据明文确定)及加密密钥k1,k2对下列明文进行加法加密: A graph is finite if both its vertex set and edge set are finite. In this book we study only finite graphs, and so the term ‘graph’ always means ‘finite graph’. (注:标点符号及空格也算一个符号,忽略大小) 3、求出相对应于上述q和k的解密密钥。 实验结果: 1.(1)写出多表古典密码简单乘法加密算法如下: Step1:确定k和q的值; Step2:输入相应的密文; Step3:作变换c=(mi*ki) mod q,字母用ASCII码变为数字后计算; Step4:得到相对应的明文; Step5:逐一输出明文; 程序如下: #include #include #include main() { char M[200]; char C[200]; int K[200],q=26,i,j; srand( (unsigned)time( NULL ) );

for(j=0;j<=200;j++) { K[j]=rand()%50; } printf("please input chars:\n"); gets(M); for(i=0;M[i]!='\0';i++) { if(M[i]>='a'&&M[i]<='z') { C[i]=((M[i]-'a'+1)*K[i])%q+'a'; } else if(M[i]>='A'&&M[i]<='Z') { C[i]=((M[i]-'A'+1)*K[i])%q+'A'; } else C[i]=M[i]; } C[i]='\0'; printf("The result is:\n%s\n",C); getch(); } 2.进行乘法加密后的结果为:

几种常用的数据加密技术

《Network Security Technology》Experiment Guide Encryption Algorithm Lecture Code: 011184 Experiment Title:加密算法 KeyWords:MD5, PGP, RSA 实验目的: 1,通过对MD5加密和破解工具的使用,掌握MD5算法的作用并了解其安全性; 2,通过对PGP加密系统的使用,掌握PGP加密算法的作用并了解其安全性; 3,对比MD5和PGP两种加密算法,了解它们的优缺点,并总结对比方法。 实验环境: 2k3一台,XP一台,确保相互ping通; 实验工具:MD5V erify, MD5Crack, RSA-Tools,PGP8.1 MD5加密算法介绍 当前广泛存在有两种加密方式,单向加密和双向加密。双向加密是加密算法中最常用的,它将明文数据加密为密文数据,可以使用一定的算法将密文解密为明文。双向加密适合于隐秘通讯,比如,我们在网上购物的时候,需要向网站提交信用卡密码,我们当然不希望我们的数据直接在网上明文传送,因为这样很可能被别的用户“偷听”,我们希望我们的信用卡密码是通过加密以后,再在网络传送,这样,网站接受到我们的数据以后,通过解密算法就可以得到准确的信用卡账号。 单向加密刚好相反,只能对数据进行加密,也就是说,没有办法对加密以后的数据进行解密。这有什么用处?在实际中的一个应用就是数据库中的用户信息加密,当用户创建一个新的账号或者密码,他的信息不是直接保存到数据库,而是经过一次加密以后再保存,这样,即使这些信息被泄露,也不能立即理解这些信息的真正含义。

MD5就是采用单向加密的加密算法,对于MD5而言,有两个特性是很重要的,第一是任意两段明文数据,加密以后的密文不能是相同的;第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。前者的意思是不可能有任意两段明文加密以后得到相同的密文,后者的意思是如果我们加密特定的数据,得到的密文一定是相同的。不可恢复性是MD5算法的最大特点。 实验步骤- MD5加密与破解: 1,运行MD5Verify.exe,输入加密内容‘姓名(英字)’,生成MD5密文; 2,运行MD5Crack3.exe(破解器),将生成的密文copy到MD5破解器中破解,点击‘开始’; 3,字符‘dong’被破解出来,建议:加密字符不要超过6个。上图为本试验抓图样本1,要求加密自己姓名字符缩写,并能破译出来。

古典加密算法

实习一古典加密算法 一、实习目的 ⒈熟悉Java平台开发环境; ⒉理解常见古典加密算法如:凯撒密码、多码替代密码、多字母替代密码、多表代替密码; ⒊理解古典加密中的替换、置换技术。 二、实习要求 ⒈实习前认真预习相关的内容; ⒉对实习内容中给定的题目上机前先进行程序的编写和数据的准备; ⒊上机编辑、调试、运行程序,并保存最终程序,然后撰写实习报告; ⒋实习报告需按专门的报告纸书写,内容包括:实习名称、实习目的、内容、操作过 程、程序清单、运行结果、实习中出现的问题及解决方法、实习体会等。 三、实习内容 ⒈[问题描述] 凯撒密码是把字母表中的每个字母用该字母后的某个字母进行替代。 凯撒密码的通用加密算法是:C=E(p)=(p+k) mod (26) 0’z’)则减去26。 四、实习参考程序 caeser.java import java.util.Scanner; public class caeser {

网络安全技术习题及答案第3章信息加密技术

第3章信息加密技术 练习题 1. 单项选择题 (1)就目前计算机设备的计算能力而言,数据加密标准DES不能抵抗对密钥的穷举搜索攻击,其原因是( B ) A.DES算法是公开的 B.DES的密钥较短 C.DES除了其中S盒是非线性变换外,其余变换均为线性变换 D.DES算法简单 (2)数字签名可以做到( C )。 A.防止窃听 B.防止接收方的抵赖和发送方伪造 C.防止发送方的抵赖和接收方伪造 D.防止窃听者攻击 (3)下列关于PGP(Pretty Good Privacy)的说法中不正确的是( D )。 A.PGP可用于电子邮件,也可以用于文件存储 B.PGP可选用MD5和SHA两种Hash算法 C.PGP采用了ZIP数据压缩算法 D.PGP不可使用IDEA加密算法 (4)为了保障数据的存储和传输安全,需要对一些重要数据进行加密。由于对称密码算法(① C ),所以特别适合对大量的数据进行加密。DES实际的密钥长度是(② A )位。 ①A.比非对称密码算法更安全 B.比非对称密码算法密钥长度更长 C.比非对称密码算法效率更高 D.还能同时用于身份认证 ②A.56B.64C.128D.256 (5)使用TELNET协议进行远程管理时,( A )。 A.包括用户名和口令在内,所有传输的数据都不会被自动加密 B.包括用户名和口令在内,所有传输的数据都会被自动加密 C.用户名和口令是加密传输的,而其它数据则以文明方式传输

D.用户名和口令是不加密传输的,其它数据则以加密传输的 (6)以下不属于对称密码算法的是( D )。 A.IDEA B.RC C.DES D.RSA (7)以下算法中属于非对称算法的是(B )。 A.Hash算法B.RSA算法 C.IDEA D.三重DES (8)以下不属于公钥管理的方法有(D )。 A.公开发布B.公用目录表 C.公钥管理机构D.数据加密 (9)以下不属于非对称密码算法特点的是(D )。 A.计算量大B.处理速度慢 C.使用两个密码D.适合加密长数据 2. 填空题 (1)______摘要算法_____________的重要性在于赋予给消息M唯一的“指纹”,其主要作用于验证消息M的完整性。 (2)非对称加密算法有两把密钥,一把称为私钥、另一把称为公钥。 (3)IDEA是目前公开的最好和最安全的分组密码算法之一,它采用____128_______位密钥对数据进行加密。 (4)RSA算法的安全是基于两个大素数分解的难度。 (5)防火墙技术是指一种将内部网络与外部网络隔离的技术,以防止外部用户对内部用户进行攻击。 (6)MD5把可变长度的消息哈希成_______ 128 ____位固定长度的值。 (7)DES算法加密过程中输入的明文长度是_______64 ____位,整个加密过程需经过16 轮的子变换。 (8)在密码学中通常将源消息称为____明文___ ____,将加密后的消息称为 ______密文_ ____。这个变换处理过程称为_______加密____过程,它的逆过程称为______解密_ ____过程。 3. 简答题 (1)对称加密算法与非对称加密算法有哪些优缺点 (2)如何验证数据完整性

一、古典加密算法

网络信息安全实训报告 课程:网络信息安全实验一古典加密算法 姓名:姜路实验日期:2012.11.10 学号:018911228009 实验报告日期:2012.11.10 一、实训目的 古典数据加密的工作原理。 二、实训环境 一台安装有Windows 9X或Windows 2000/XP/NT的计算机。 三、实训内容 用一种高级语言编写程序实现对某一文件内容用恺撒加密(或维吉尼亚加密)法进行加密,然后用解密程序进行解密。 四、实训步骤 1、用一种高级语言编写程序实现对某一文件内容用恺撒加密(或维吉尼亚加密)法进行加密。 2、用解密程序对密文进行解密。 五、实训效果检测 1、以C#平台为例说明恺撒密码(Caesar Cipher )算法的实现。 程序主界面如图1所示: 程序源码 using System; ……(省略部分生成代码) namespace Encryption

{ public partial class Form1 : Form { int key; private string Encryption(int key,ref string InputString) { StringBuilder str = new StringBuilder(); char ch,chtemp; int temp; for(int i=0;i=97 && (int)ch <=122) { temp = (((int)ch - 97) + key) % 26 + 65; chtemp = (char)temp; } else if ((int)ch >=65 && (int)ch <=90) { temp = (((int)ch - 65) + key) % 26 + 97; chtemp = (char)temp; } else chtemp = ch; str.Append(chtemp); } return str.ToString(); } public Form1() { InitializeComponent(); } private void btnEncryption_Click(object sender, EventArgs e) { string str = txtPlaintext.Text; txtCiphertext.Text = Encryption(key, ref str); } private void txtKey_MouseEnter(object sender, EventArgs e) { lblInfo.Visible = true;

常见加密解密算法及原理探究

常见加密解密算法及原理探究 发表时间:2019-01-11T10:35:53.427Z 来源:《科技新时代》2018年11期作者:陈骥 [导读] 当今世界是数据和信息的世界,我们无时无刻不生活在信息之下。与此同时安全隐患也随之增加,如何就其进行信息保护是当前及未来面临的重要问题。 四川外国语学院重庆第二外国语学校重庆 400060 摘要:当今世界是数据和信息的世界,我们无时无刻不生活在信息之下。与此同时安全隐患也随之增加,如何就其进行信息保护是当前及未来面临的重要问题。密码保护是当前广泛使用的手段,加密解密算法是常使用的具体方法,常用的有RSA、DES等,在新的科技形式下我们需要就其进行新的探究。本文介绍了几种现今常见的加密解密算法及其原理,并对密码保护进行了一定展望。 关键词:信息安全;密码;算法 1. 加密解密技术概述 1.1加密解密技术概念 随着互联网的迅速崛起,移动支付变得触手可及,个人信息数据越来越成为普遍性的东西,其安全问题也越来越紧迫。密码技术是取得信息安全的核心技术,通过数据加密可以有效的保证数据不被泄露。加解密系统有对称加密和非对称加密,采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。这种加密方法优势在于速度快,通常在需要加密大量数据时使用。对称代表着双方需要用相同的密钥进行加密和解密,密钥是控制加密和解密过程的指令。算法相当于是一种规则,规定如何进行加密和解密。非对称加密则需要两个密钥,一个是公开密钥一个是私有密钥。公开密钥与私有密钥对应,只能用对应的公开密钥或私有密钥与之对应。非对称加密算法相对较复杂因此速度也会相对较慢。随着当今世界网络技术的发展和互联网活动的日益频繁,数据的重要性也使数据的价值远远超出了纯粹的网络技术的意义,因此如何保护人们的信息安全成为一个热点话题,网络安全需求越来越迫切,在这样的背景之下,加解密算法的研究也越来越重要。 1.2密码技术发展历程 密码学是一个古老的学科,在1949年,信息论的创始人香农论证出了由传统加密所加密的密文都是可以破解的,这在当时让密码学陷入了困境。直到20世纪60年代,计算机技术的迅猛发展以及结构代数等学术成果的出现,是密码学进入了一个崭新发展的时期。特别是美国的数据加密标准DES和公开密钥密码体制的推出,为密码学奠定了坚实的基础。进入90年代后,计算机网络的发展使得电子商务出现在人们的视野之中,这无疑推动了加密解密技术的发展。目前网络已经处于信息爆炸的阶段,信息量已经发展到鼎盛的时期,在数据加密方面,无论是军事、外交还是在个人的网银、电子商务等方面都是已经有着相当成型的应用,因此加强信息加密技术的发展一直要处于一个不可松懈的状态之中。如微信小程序的加密现如今的加密技术已经相当成熟,但仍然无法完全避免信息泄露,因此随着网络发展的更新,加解密技术也需要与时俱进,快速的更新迭代。因此我们必须加快对加密解密算法的研究。 [1] 2 常见的加密解密算法及比较 2.1 RSA算法的基本实现原理 首先明确素数和互素数的概念: 素数:又名质数,是大于1的自然数中,除了1和其本身不再有其他的因数的自然数。 互素数:公因数只有1的两个或多个非零自然数。 如上所述,加解密分为对称非对称,而RSA则是一种非对称的算法。它需要一对秘钥来配合进行加解密,我们将其区分为公开和私有两种秘钥,一般来说,加密步骤使用公开秘钥,而与之对应的私有秘钥则进行解密运算。两个过程所使用的是算法不同,因此我们称之为非对称的运算。这种算法的加密过程基本是完全公开的,但解密所需的私有秘钥却是保密的,这保证了其安全性。其基本过程如下,先选择两个不同的素数,记为p、q,且这两个数应该足够大且严格保密,二者相乘得到另一个数,记为n, 使用公式f(n)=(p-1)(q-1),之后找一个f(n)的互质数e,在这同时e需要大于1小于f(n)。继而通过模指数运算来得出d使得d与e的乘积做模运算后的结果也必须要等于1,最后得到公开密钥(e,n),私有密钥(d,n)。加密时将明文变换成0至n-1的一个整数m,当明文较长时可以将其进行适当的分割成组,然后进行交换。加密解密过程均通过欧拉函数完成。 RSA加密算法的安全性与缺陷。RSA算法安全性比较高,其基本原理是两个素数的乘积容易求得,但是其因式分解却非常困难。正是由于这这个原因,RSA算法的安全性在很大程度上都依赖于大数因式分解的难度,目前密码的破译主要有两种方法,一是穷尽搜索法,类似于数学中的穷举法,尽管大部分密钥是失败的但最终总会有一个密钥让破译者得到明文。其二是密码直接分析,使用穷举法需要对大量数据进行数学运算,而这对于RSA来说则是极为困难的。因此只能通过密码分析来尝试破解RSA。但这样一来难度也非常大,因为在破译的过程中会遇到很多现在无法解决的数学难题。虽然RSA算法看似安全性很高,但这使得它在运算时速度太慢,由于RSA的分组长度比较大,为了保证其安全性,需要承担很大的运算代价,在未来素数分解技术不断发展的情况下,这个分组长度还会不断增加,一般来说只用于少量数据的加密。[2] [3] 2.2 DES加密算法实现的基本原理 DES是一个分组加密算法,它以64位为一个分组对数据进行加密,由于其中有8位用于奇偶校验因此有效长度为56位。预先对选择好的64位的明文进行分组,然后将其置换分为左右各32位的两个部分,之后对其进行一系列的函数运算,使其与秘钥进行结合,而后循环进行16轮的运算。完成后将左右两部分合并通过末置换即初始置换的逆运算即可完成算法。 2.3 AES加密算法实现的基本原理 AES的基本原理是数据的排列,首先将其打乱然后重新排列,然后进行置换操作,使用新的数据来替换原来的的以完成加密过程。由于它是一个迭代的、对称加密分组的加密方式,因此它可以使用128、192和256位密钥,构成一个循环的结构,在其中重复进行置换和

相关文档
最新文档