详细解析数据加密 续

安全 数据安全
考虑到用户可能试图旁路系统的情况,如物理地取走数据库,在通讯线路上窃听。对这样的威胁最有效的解决方法就是数据加密,即以加密格式存储和传输敏感数据。

数据加密标准

传统加密方法有两种,替换和置换。上面的例子采用的就是替换的方法:使用密钥将明文中的每一个字符转换为密文中的一个字符。而置换仅将明文的字符按不同的顺序重新排列。独立使用这两种方法的任意一种都是不够安全的,但是将这两种方法结合起来就能提供相当高的安全程度。数据加密标准(Data Encryption Standard,简称DES)就采用了这种结合算法,他由IBM制定,并在1977年成为美国官方加密标准。

DES的工作原理为:将明文分割成许多64位大小的块,每个块用64位密钥进行加密,实际上,密钥由56位数据位和8位奇偶校验位组成,因此只有256个可能的密码而不是264个。每块先用初始置换方法进行加密,再连续进行16次复杂的替换,最后再对其施用初始置换的逆。第i步的替换并不是直接利用原始的密钥K,而是由K和i计算出的密钥Ki。DES具有这样的特性,其解密算法和加密算法相同,除了密钥Ki的施加顺序相反以外。

公开密钥加密

多年来,许多人都认为DES并不是真的非常安全。事实上,即使不采用智能的方法,随着快速、高度并行的处理器的出现,强制破解DES也是可能的。"公开密钥"加密方法使得DES及类似的传统加密技术过时了。公开密钥加密方法中,加密算法和加密密钥都是公开的,所有人都可将明文转换成密文。不过相应的解密密钥是保密的(公开密钥方法包括两个密钥,分别用于加密和解密),而且无法从加密密钥推导出,因此,即使是加密者若未被授权也无法执行相应的解密。公开密钥加密思想最初是由Diffie和Hellman提出的,最著名的是Rivest、Shamir及Adleman提出的,目前通常称为RSA(以三个发明者的首位字母命名)的方法,该方法基于下面的两个事实:

1) 已有确定一个数是不是质数的快速算法;

2) 尚未找到确定一个合数的质因子的快速算法。

RSA方法的工作原理如下:

1) 任意选取两个不同的大质数p和q,计算乘积r=p*q;

2) 任意选取一个大整数e,e和(p-1)*(q-1)互质,整数e用做加密密钥。注意:e的选取是非常容易的,例如,所有大于p和q的质数都可用。

3) 确定解密密钥d:d * e = 1 modulo(p - 1)*(q - 1)根据e、p和q能容易地计算出d。

4) 公开整数r和e,不过不公开d;

5) 将明文P (假设P是个小于r的整数)加密为密文C,计算方法为:C = Pe modulo r

6) 将密文C解密为明文P,计算方法为:P = Cd modulo r

然而只根据r和e(不是p和q)要计算出d是不可能的。因此,所有人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。

下面举一简单的例子对上述过程进行说明,显然我们只能选取非常小的数字。

例:选取p=3, q=5,则r=15,(p-1)*(q-1)=8。选取e=11(大于p和q的质数),通过d * 11 = 1 modulo 8,计算出d =3。

假定明文为整数13。则密文C为

  1. C = Pe modulo r 
  2.  
  3. 1311 modulo 115 
  4.  
  5. = 1,792,160,394,037 modulo 15 
  6.  
  7. 7 

 

复原明文P为:

  1. P = Cd modulo r 
  2.  
  3. 73 modulo 15 
  4.  
  5. 343 modulo 15 
  6.  
  7. 13 

 

因为e和d互逆,公开密钥加密方法也允许采用这样的方式对加密信息进行"签名",以便接收方能确定签名不是伪造的。假设A和B希望通过公开密钥加密方法进行数据传输,A和B分别公开加密算法和相应的密钥,但不公开解密算法和相应的密钥。A和B的加密算法分别是ECA和ECB,解密算法分别是DCA和DCB,ECA和DCA互逆,ECB和DCB互逆。若A要向B发送明文P,不是简单地发送ECB(P),而是先对P施以其解密算法DCA,再用加密算法ECB对结果加密后发送出去。密文C为:

C = ECB(DCA(P))

B收到C后,先后施以其解密算法DCB和加密算法ECA,得到明文P:

  1. ECA(DCB(C))  
  2.  
  3. = ECA(DCB(ECB(DCA(P))))  
  4.  
  5. = ECA(DCA(P)) /*DCB和ECB相互抵消*/  
  6.  
  7. = P /*DCB和ECB相互抵消*/ 

 

这样B就确定报文确实是从A发出的,因为只有当加密过程利用了DCA算法,用ECA才能获得P,只有A才知道DCA算法,没有人,即使是B也不能伪造A的签名。

数据加密的更对内容请看:详细解析数据加密

【编辑推荐】

  1. 生成和交换预共享密钥
  2. PKI基础内容介绍(1)
  3. 破解你的密码需要多长时间?
  4. 信息安全的核心之密码技术 上
  5. 揭露维基解密窃取机密信息新手段
  6. 防御网络威胁UTM技术解密(图示)
责任编辑:佚名 来源: 网络转载
相关推荐

2011-04-18 11:34:04

2011-03-17 17:09:54

2010-09-26 16:10:03

数据加密产品

2011-03-08 14:45:59

2011-05-19 13:53:56

2010-09-17 20:04:21

2010-03-10 14:18:13

Ubuntu分区

2011-04-18 13:47:59

ECC私钥

2010-06-13 18:00:56

MySQL数据类型

2009-04-15 09:49:20

2011-04-07 17:27:52

Policing

2010-05-05 15:18:21

Unix cpio

2011-04-07 17:39:57

Shapping

2011-04-07 17:43:37

Shapping

2011-04-07 17:54:22

Policing

2010-03-09 14:04:28

2012-04-13 13:58:52

数据加密

2012-11-12 10:10:37

FolsomOpenStack

2009-05-20 09:56:38

DNS解析故障

2010-05-31 10:09:16

MySQL数据库
点赞
收藏

51CTO技术栈公众号