信息安全中的加密技术的实现研究剖析.docx
- 文档编号:5917043
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:24
- 大小:54.56KB
信息安全中的加密技术的实现研究剖析.docx
《信息安全中的加密技术的实现研究剖析.docx》由会员分享,可在线阅读,更多相关《信息安全中的加密技术的实现研究剖析.docx(24页珍藏版)》请在冰豆网上搜索。
信息安全中的加密技术的实现研究剖析
信息安全中的加密技术的实现研究
摘要:
随着网络的应用与发展,信息安全问题日益突出。
本文讨论的数据加密技术是实现计算机信息安全的重要手段之一,它是一种主动安全防御策略,为信息传输提供安全保护。
文章介绍了DES、RSA、MD5等数据加密技术以及链路加密和端对端加密两种网络数据加密方式。
数据库加密是信息安全的核心问题,文章介绍了库内加密、库外加密、硬件加密三种数据库加密方式。
最后文章介绍了几种流行的软件加密技术。
关键词:
信息安全;数据加密;对称式密钥加密技术DES;公开密钥加密技术RSA;单项散列算法MD5
ResearchofEncryptionIntheInformationSecurity
Abstract:
Alongwiththenetworkdevelopment,theinformationsecurityisdaybydayprominent.Thedataencryptionisoneoftheimportantmethodstorealizeinformationsecurity,whichisdefendingstrategythathasinitiativeandsecurityandprovidestheprotectionfortheinformationtransmission.Thispaperintroducesdataencryption:
DES,RSA,MD5andsoonaswellasthelinkencryptionandtheend-to-endencryptiononnetwork.Thedatabaseencryptionisthecoreofinformationsecurity.Thearticlediscussesthreedatabaseencryption:
theinsidestorehouseencryption,theoutsidestorehouseencryptionandthehardwareencryption.Finallyitanalyzesseveralkindsofpopularsoftwareencryptions.
Keywords:
informationsecurity;dataencryption;DES;RSA;MD5
1信息安全概述
1.1信息
信息是通过在数据上施加某些约定而赋予这些数据的特殊含义。
一般意义上,信息是指事物运动的状态和方式,是事物的一种属性,在引入必要的约束条件后可以形成特定的概念体系。
对现代企业来说,信息也是一种资产,包括计算机和网络中的数据,还包括专利、标准、商业机密、文件、图纸、管理规章、关键人员等,就象其它重要的商业资产那样,信息资产具有重要的价值,因而需要进行妥善保护。
1.2信息安全
信息安全(InformationSecurity,InfoSec)的任务,就是要采取措施(技术手段及有效管理)让这些信息资产免遭威胁,或者将威胁带来的后果降到最低程度,以此维护组织的正常运作。
凡是涉及到保密性、完整性、可用性、可追溯性、真实性和可靠性保护等方面的技术和理论,都是信息安全所要研究的范畴,也是信息安全所要实现的目标。
信息安全通常强调所谓CIA三元组的目标,即保密性、完整性和可用性。
保密性(Confidentiality)——确保信息在存储、使用、传输过程中不会泄漏给非授权用户或实体。
完整性(Integrity)——确保信息在存储、使用、传输过程中不会被非授权用户篡改,同时还要防止授权用户对系统及信息进行不恰当的篡改,保持信息内、外部表示的一致性。
可用性(Availability)——确保授权用户或实体对信息及资源的正常使用不会被异常拒绝,允许其可靠而及时地访问信息及资源。
除了CIA,信息安全的其它标准还有一些其他原则,包括可追溯性(Accountability)
不可抵赖性(Non-repudiation)、真实性(authenticity)等,这些都是对CIA原则的细化、补充或加强。
2数据加密技术
2.1密码学简介
数据加密技术是对信息进行重新编码,从而达到隐藏信息内容,使非法用户无法获得信息真实内容的一种技术手段。
网络中的数据加密则是通过对网络中传输的信息进行数据加密,满足网络安全中数据加密、数据完整性等要求,而基于数据加密技术的数字签名技术则可满足防低赖等安全要求。
可见,数据加密技术是实现信息安全的关键技术。
2.1.1数据加密、解密基本过程
通常情况下,人们将可懂的文本称为明文(plaintext);将明文变换成的不可懂的形式的文本称为密文(ciphertext);把明文变换成密文的过程叫加密(encipher);其逆过程,即把密文变换成明文的过程叫解密(decipher)。
密钥(keyword)是用于加解密的一些特殊信息,它是控制明文与密文之间变换的关键,它可以是数字、词汇或语句。
密钥分为加密密钥(EncryptionKey)和解密密钥(DecryptionKey)。
完成加密和解密的算法称为密码体制(CipherSystem)。
传统的密码体制所用的加密密钥和解密密钥相同,形成了对称式密钥加密技术;在一些新体制中,加密密钥和解密密钥不同,形成非对称式密码加密技术,即公开密钥加密技术。
数据加密或解密变换过程如图1所示。
图1 加密或解密变换
2.1.2加密和解密表示方法
明文用M(消息)或P(明文)表示,它可能是比特流(文本文件、位图、数字化的语音流或数字化的视频图像)。
至于涉及到计算机,P是简单的二进制数据。
明文可被传送或存储,无论在哪种情况,M指待加密的消息。
密文用C表示,它也是二进制数据,有时和M一样大,有时稍大(通过压缩和加密的结合,C有可能比P小些。
然而,单单加密通常达不到这一点)。
加密函数E作用于M得到密文C,用数学表示为:
E(M)=C.
相反地,解密函数D作用于C产生M
D(C)=M.
先加密后再解密消息,原始的明文将恢复出来,下面的等式必须成立:
D(E(M))=M
2.1.3鉴别、完整性和抗抵赖
除了提供机密性外,密码学通常有其它的作用:
.
(a)鉴别
消息的接收者应该能够确认消息的来源;入侵者不可能伪装成他人。
(b)完整性检验
消息的接收者应该能够验证在传送过程中消息没有被修改;入侵者不可能用假消息代替合法消息。
(c)抗抵赖
发送者事后不可能虚假地否认他发送的消息。
2.1.4算法和密钥
密码算法也叫密码,是用于加密和解密的数学函数。
(通常情况下,有两个相关的函数:
一个用作加密,另一个用作解密)
如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的算法。
受限制的算法具有历史意义,但按现在的标准,它们的保密性已远远不够。
大的或经常变换的用户组织不能使用它们,因为每有一个用户离开这个组织,其它的用户就必须改换另外不同的算法。
如果有人无意暴露了这个秘密,所有人都必须改变他们的算法。
更糟的是,受限制的密码算法不可能进行质量控制或标准化。
每个用户组织必须有他们自己的唯一算法。
这样的组织不可能采用流行的硬件或软件产品。
但窃听者却可以买到这些流行产品并学习算法,于是用户不得不自己编写算法并予以实现,如果这个组织中没有好的密码学家,那么他们就无法知道他们是否拥有安全的算法。
尽管有这些主要缺陷,受限制的算法对低密级的应用来说还是很流行的,用户或者没有认识到或者不在乎他们系统中内在的问题。
现代密码学用密钥解决了这个问题,密钥用K表示。
K可以是很多数值里的任意值。
密钥K的可能值的范围叫做密钥空间。
加密和解密运算都使用这个密钥(即运算都依赖于密钥,并用K作为下标表示),这样,加/解密函数现在变成:
EK(M)=C
DK(C)=M.
这些函数具有下面的特性:
DK(EK(M))=M.
有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下:
EK1(M)=C
DK2(C)=M
DK2(EK1(M))=M
所有这些算法的安全性都基于密钥的安全性;而不是基于算法的细节的安全性。
这就意味着算法可以公开,也可以被分析,可以大量生产使用算法的产品,即使偷听者知道你的算法也没有关系;如果他不知道你使用的具体密钥,他就不可能阅读你的消息。
密码系统由算法、以及所有可能的明文、密文和密钥组成的。
2.2对称式密钥加密技术
对称式密钥加密技术是指加密和解密均采用同一把秘密钥匙,而且通信双方必须都要获得这把钥匙,并保持钥匙的秘密。
当给对方发信息时,用自己的加密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密。
故它也称为秘密钥匙加密法。
对称算法的加密和解密表示为:
EK(M)=C
DK(C)=M
实现对称式密钥加密技术的加密算法主要有两种:
DES算法、IDEA算法。
2.2.1DES(DataEncryptionStandard)算法
DES即数据加密标准,是1977年美国国家标准局宣布用于非国家保密机关的数据保护。
这种加密算法是由IBM研究提出来,它综合运用了置换、代替、代数多种密码技术,把信息分成64位大小的块,使用56位密钥,迭代轮数为16轮的加密算法。
DES是一个分组加密算法。
其中有极少量的数被认为是弱密匙,但是很容易避开他们。
所以保密性依赖于密钥。
算法功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每分各长32位,其置换规则见下表:
58,50,12,34,26,18,10,2,60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,
57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,
61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,
即将输入的第58位换到第一位,第50位换到第2位,...,依此类推,最后一位是原来的第7位。
L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:
设置换前的输入值为D1D2D3......D64,则经过初始置换后的结果为:
L0=D58D50...D8;R0=D57D49...D7。
经过16次迭代运算后。
得到L16、R16,将此作为输入,进行逆置换,即得到密文输出。
逆置换正好是初始置的逆运算,例如,第1位经过初始置换后,处于第40位,而通过逆置换,又将第40位换回到第1位,其逆置换规则如下表所示:
40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,
38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29,
36,4,44,12,52,20,60,28,35,3,43,11,51,19,59,27,
34,2,42,10,50,18,5826,33,1,41,9,49,17,57,25,
放大换位表
32,1,2,3,4,5,4,5,6,7,8,9,8,9,10,11,
12,13,12,13,14,15,16,17,16,17,18,19,20,21,20,21,
22,23,24,25,24,25,26,27,28,29,28,29,30,31,32,1,
单纯换位表
16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10,
2,8,24,14,32,27,3,9,19,13,30,6,22,11,4,25,
在f(Ri,Ki)算法描述图中,S1,S2...S8为选择函数,其功能是把6bit数据变为4bit数据。
下面给出选择函数Si(i=1,2......8)的功能表:
选择函数Si
S1:
14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,
0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,
4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0,
15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,
S2:
15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,
3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,
0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,
13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,
S3:
10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8,
13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1,
13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,
1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12,
S4:
7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15,
13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9,
10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4,
3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14,
S5:
2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,
14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6,
4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14,
11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3,
S6:
12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,
10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,
9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,
4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13,
S7:
4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,
13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6,
1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2,
6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12,
S8:
13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7,
1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,
7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,
2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11,
在此以S1为例说明其功能,我们可以看到:
在S1中,共有4行数据,命名为0,1、2、3行;每行有16列,命名为0、1、2、3,......,14、15列。
现设输入为:
D=D1D2D3D4D5D6
令:
列=D2D3D4D5行=D1D6
然后在S1表中查得对应的数,以4位二进制表示,此即为选择函数S1的输出。
下面给出子密钥Ki(48bit)的生成算法:
从子密钥Ki的生成算法描述图中我们可以看到:
初始Key值为64位,但DES算法规定,其中第8、16、......64位是奇偶校验位,不参与DES运算。
故Key实际可用位数便只有56位。
即:
经过缩小选择换位表1的变换后,Key的位数由64位变成了56位,此56位分为C0、D0两部分,各28位,然后分别进行第1次循环左移,得到C1、D1,将C1(28位)、D1(28位)合并得到56位,再经过缩小选择换位2,从而便得到了密钥K0(48位)。
依此类推,便可得到K1、K2、......、K15,不过需要注意的是,16次循环左移对应的左移位数要依据下述规则进行:
循环左移位数
1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1
以上介绍了DES算法的加密过程。
DES算法的解密过程是一样的,区别仅仅在于第一次迭代时用子密钥K15,第二次K14、......,最后一次用K0,算法本身并没有任何变化。
2.2.2IDEA(InternationalDataEncryptionAlgorithm)算法
IDEA是一种国际信息加密算法。
它是1991年在瑞士ETHZurich由JamesMassey和XueiiaLai发明,于1992年正式公开,是一个分组大小为64位,密钥为128位,迭代轮数为八轮的迭代型密码体制。
此算法使用长达128位的密钥,在效地消除了任何试图穷尽搜索密钥的可能性。
这比DES提供了更多的安全性,但是在选择用于IDEA的密钥时,应该排除那些称为“弱密钥”的密钥。
DES只有四个弱密钥和12个次弱密钥,而IDEA中的弱密钥数相当可观,有2的51次方个。
但是,如果密钥的总数非常大,达到2的128次方个,那么仍有2的77次方个密钥可供选择。
IDEA被认为是极为安全的。
使用128位的密钥,蛮力攻击中需要进行的测试次数与DES相比会明显增大,甚至允许对弱密钥测试。
而且,它本身也显示了它尤其能抵抗专业形式的分析性攻击。
IDEA的软件实现速度与DES差不多。
但硬件实现速度要比DES快得多,快将近10倍。
设计者们声称由ETHZurich开发的一种芯片,采用IDEA算法的加密速率可达到177M比特/秒。
IDEA密码中使用了以下三种不同的运算:
(1)逐比特异或运算;
(2)模2加运算;
(3)模2+1乘运算,0与2对应。
IDEA算法是由8圈迭代和随后的一个输出变换组成。
它将64比特的数据分成4个子块,每个16比特,令这四个子块作为迭代第一轮的输出,全部共8圈迭代。
每圈迭代都是4个子块彼此间以及16比特的子密钥进行异或,MOD2加运算,MOD2+1乘运算。
任何一轮迭代第三和第四子块互换。
该算法所需要的"混淆"可通过连续使用三个"不相容"的群运算于两个16比特子块来获得,并且该算法所选择使用的MA-(乘加)结构可提供必要的"扩散"。
2.2.3对称式密钥加密技术的优缺点
对称式密钥加密技术具有加密速度快,保密度高等优点。
但也有其缺点:
①密钥是保密通信安全的关键,发信方必须安全、妥善地把钥匙护送到收信方,不能泄露其内容,如何才能把密钥安全地送到收信方,是对称密钥加密技术的突出问题,可见,此方法的密钥分发过程十分复杂,所花代价高。
②多人通信时密钥的组合的数量,会出现爆炸性的膨胀,使密钥分发更加复杂化,n个人进行两两通信,总需要的密钥数为n(n-1)/2。
③通信双方必须统一密钥,才能发送保密的信息。
如果发信者与收信人是素不相识的,这就无法向对方发送秘密信息了。
2.3公开密钥加密技术(RSA)
公开密钥加密技术要求密钥成对使用,即加密和解密分别由两个密钥来实现。
每个用户都有一对选定的密钥,一个可以公开,即公共密钥,用于加密;另一个由用户安全拥有,即秘密密钥,用于解密。
公共密钥和秘密密钥之间有密切的关系。
当给对方发信息时,用对方的公开密钥进行加密,而在接收方收到数据后,用自己的秘密密钥进行解密。
故此技术也称为非对称密码加密技术。
公开密钥加密算法主要是RSA加密算法。
此算法是美国MIT的Rivest、Shamir和Adleman于1978年提出的,它是第一个成熟的、迄今为止理论上最为成功的公开密钥密码体制,它的安全性基于数论中的Euler定理和计算复杂性理论中的下述论断:
求两个大素数的乘积是容易的,但要分解两个大素数的乘积,求出它们的素因子则是非常困难的,它属于NP--完全类。
2.3.1RSA实现过程
RSA加密、解密过程由密钥生成、加密过程和解密过程组成。
(1)密钥对的产生
选择两个大素数,p和q。
计算:
n=p*q
选择加密密钥e,要求e和(p-1)*(q-1)互质。
最后,利用Euclid算法计算解密密钥d,满足e*d=1(mod(p-1)*(q-1))
其中n和d也要互质。
数e和n是公钥,d是私钥。
两个素数p和q不再需要,应该丢弃,不要让任何人知道。
(2)加密过程
加密信息m(二进制表示)时,首先把m分成等长数据块m1,m2,...,mi,块长s,其中2^s<=n,s尽可能的大。
对应的密文是:
ci=mi^e(modn)(a)
(3)解密过程
解密时作如下计算:
mi=ci^d(modn)(b)
RSA可用于数字签名,方案是用(a)式签名,(b)式验证。
具体操作时考虑到安全性和m信息量较大等因素,一般是先作HASH运算。
2.3.2RSA的安全性
RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定需要作大数分解。
假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。
目前,RSA的一些变种算法已被证明等价于大数分解。
不管怎样,分解n是最显然的攻击方法。
现在,人们已能分解140多个十进制位的大素数。
因此,模数n必须选大一些,因具体适用情况而定。
2.3.3RSA的速度
由于进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。
速度一直是RSA的缺陷。
一般来说只用于少量数据加密。
2.3.4RSA的选择密文攻击
RSA在选择密文攻击面前很脆弱。
一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署。
然后,经过计算就可得到它所想要的信息。
实际上,攻击利用的都是同一个弱点,即存在这样一个事实:
乘幂保留了输入的乘法结构:
(XM)^d=X^d*M^dmodn
前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征-每个人都能使用公钥。
但从算法上无法解决这一问题,主要措施有两条:
一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-WayHashFunction对文档作HASH处理,或同时使用不同的签名算法。
下面介绍几种不同类型的攻击方法。
(1)RSA的公共模数攻击。
若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。
最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 安全 中的 加密 技术 实现 研究 剖析