对称和非对称加密

对称加密非常最古老且 best-known 技术。 可以是数字、 单词或只是一个字符串随机字母,一个机密密钥应用于特定的方式更改该内容的消息文本。 这可能是简单,同时移的字母表中的每个字母。 只要同时发件人和收件人知道密钥,则他们可以加密和解密使用此密钥的所有邮件。

 

非对称加密

密钥问题交换它们通过 Internet 或大型网络同时防止其下降到错误的指针。 知道密钥的人能够解密该邮件。 一个的答案是在其中有两个相关的项一个密钥对的非对称加密。 可能需要发送消息的任何人,公钥由免费提供。 第二个专用的密钥是保密,以便只知道它。

 

使用公钥加密任何消息 (文本、 二进制的文件或文档) 只解密情况应用相同的算法,但通过使用匹配的私钥。 仅可以通过使用匹配的公钥解密使用私钥进行加密的任何邮件。

 

这意味着您执行没有担心如何通过 Internet 传递公钥 (项应该是公共)。 非对称加密,一个问题但是,是它是比对称加密速度慢。 它需要多得多处理能力加密和解密该邮件的内容。

 

DES( Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。虽然56位密钥的DES算法已经风光不在,而且常有用Des加密的明文被破译的报道,但是了解一下昔日美国的标准加密算法总是有益的,而且目前DES算法得到了广泛的应用,在某些场合,她仍然发挥着余热.(如:UNIX的密码算法就是以DES算法为基础的)。

以下是DES加密流程图:

3DES(即Triple DES)是DESAES过渡的加密算法,它使用364位的密钥对数据进行三次加密。是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法。比起最初的DES3DES更为安全。

 

3DES算法

CPU双界面卡一般采用DES加密算法,这是一种迭代分组密码算法,使用的密钥长度为64位。为进一步提高系统安全强度,在校园一卡通系统中,双界面CPU卡采用的是三重DES算法,采用的密码长度为128位。

  3DES算法

  3DES算法是指使用双长度(16字节)密钥K=(KL||KR)将8字节明文数据块进行3DES加密/解密。如下所示:

      Y DES(KL)[DES-1(KR)[DES(KL[X])]]

      解密方式为:

      X DES-1 (KL)[DES      (KR)[ DES-1 (KL[Y])]]

  其中,DES(KL[X])表示用密钥K对数据X进行DES加密,DES-1 (KL[Y])表示用密钥K对数据Y进行解密。

  SessionKey的计算采用3DES算法,计算出单倍长度的密钥。表示法为:SK = Session(DKDATA)

  3DES加密算法为:

      VOID 3DES(BYTE DoubleKeyStr[16] BYTE Data[8] BYTE Out[8])

{

      BYTE Buf1[8] Buf2[8];

      DES      (&DoubleKeyStr[0] Data Buf1);

      UDES(&DoubleKeyStr[8] Buf1 Buf2);

      DES      (&DoubleKeyStr[0] Buf2 Out);

}

3DES工作原理

IDEA(International Data Encryption Algorithm)是瑞士的James MasseyXuejia  Lai等人提出的加密算法,在密码学中属于数据块加密算法(Block Cipher)类。IDEA使用长度为128bit的密钥,数据块大小为64bit。从理论上讲,IDEA属于“强”加密算法,至今还没有出现对该算法的有效攻击算法。

 

早在1990年,Xuejia  Lai等人在EuroCrypt90年会上提出了分组密码建议PES(Proposed Encryption Standard)。在EuroCrypt91年会上, Xuejia  Lai等人又提出了PES的修正版IPES(Improved PES)。目前IPES已经商品化,并改名为IDEAIDEA已由瑞士的Ascom公司注册专利,以商业目的使用IDEA算法必须向该公司申请许可。

 

IDEA是一种由8个相似圈(Round)和一个输出变换(Output Transformation)组成的迭代算法。IDEA的每个圈都由三种函数:模(216+1)乘法、模216加法和按位XOR组成。

 

在加密之前,IDEA通过密钥扩展(Key Expansion)128bit的密钥扩展为52Byte的加密密钥EK(Encryption Key),然后由EK计算出解密密钥DK(Decryption Key)EKDK分为8组半密钥,每组长度为6Byte,前8组密钥用于8圈加密,最后半组密钥(4Byte)用于输出变换。IDEA的加密过程和解密过程是一样的,只不过使用不同的密钥(加密时用EK,解密时用DK)

 

密钥扩展的过程如下:

1.将128bit的密钥作为EK的前8byte

2.将前8byte循环左移25bit,得到下一8byte,将这个过程循环7次;

3.在第7次循环时,取前4byte作为EK的最后4byte

4.至此52byteEK生成完毕。

 

AESAdvanced Encryption Standard

  高级加密标准 密码学中的高级加密标准(Advanced Encryption StandardAES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 NIST)于20011126日发布于FIPS PUB 197,并在2002526日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。

  该算法为比利时密码学家Joan DaemenVincent Rijmen所设计,结合两位作者的名字,以Rijdael之命名之,投稿高级加密标准的甄选流程。(Rijdael的发音近于 "Rhine doll"。)

 

AES 是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128192 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据 的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations )和替换(substitutions)输入数据。Figure 1 显示了 AES 192位密钥对一个16位字节数据块进行加密和解密的情形。

AES加密过程)

RSA是一个Internet加密与鉴权系统,它使用Ron RivestAdi ShamirLeonard Adieman1977年开发的一个算法。RSA算法是最普遍使用的加密与鉴权算法,并且已被包含在MicrosoftNetscapeWeb浏览器中。它也是LotusNotesIntuitQuicken及其他许多产品的一部分。

RSA算法非常简单,概述如下:

找两素数pq (初中学过的素数:除了1和本身,还有其它的约数。)

n=p*q

t=(p-1)*(q-1)

取任何一个数e,要求满足e<t并且et互素(就是最大公因数为1

d*e%t==1

这样最终得到三个数: n d e

 

RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解 RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前, RSA 的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现在,人们已能分解多个十进制位的大素数。因此,模数n 必须选大一些,因具体适用情况而定。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值