密码学基础

来源:互联网 发布:淘宝店铺放微信二维码 编辑:程序博客网 时间:2024/05/16 09:17

 

1PKI体系的身份认证,常用的方法是依赖于CA所颁发的符合X.509规范的标准的数字证书。通信双方交换数据之前,需首先确认彼此的身份,交换彼此的数字证书,对证书进行检验,只有通过认证才能继续交换数据。

       PKI体系的身份认证基本上采用的是“用户名+口令”的模式。

 

 

2、  加密算法分为对称加密算法和非对称加密算法

       对称加密算法:消息的发送者和接受者知道并使用相同的秘密密钥,DES,其密钥是不能公开的。

       非对称加密算法:它使用两个密钥:一个公钥用于加密,一个私钥用于解密。如DHRSA

 

3、  密码杂凑函数:一种接受任意长的消息为输入,并产生固定长度的输出h(x)的算法,这个输出称为消息摘要或指纹。

 

4、  消息认证码MAC: 是指消息被一密钥控制的公开函数作用后产生的、用作认证符的、固定长度的数值,也成为密码校验和。MAC产生消息摘要时需要使用密钥。消息认证码其作用是保护通信双方以防第三方的攻击,然而却不能保护通信双方中的一方防止另一方的欺骗和伪造(数字签名就可以解决这个问题)。

 

5、  数字签名主要用于防止通信双方之间的欺骗或抵赖。

       具有认证功能.有以下性质:

       (1) 能够验证签名产生者的身份,以及产生签名的时间。

       (2) 能用于证实被签消息的内容。

       (3) 可由第三方验证,从而能够解决通信双方的争议。

       基本原理是:发送方A利用自己的私钥进行加密,接收方BA公开的公钥进行解密。

 

6PKI技术采用证书管理公钥,通过第三方的可信任机构一认证中心CA,把用户的公钥和用户的其他标识信息(如名称、Email、身份证号等等)捆绑在一起,来验证用户的身份。PKI数字证书类似于现实生活中的个人身份证。数字证书是将证书持有者的身份信息和其所拥有的公钥进行绑定的文件。证书中还包含签发该证书的权威机构认证中心CA对该证书的签名。

 

可参考《白话数字签名》这篇文章http://www.cnblogs.com/1-2-3/archive/2007/09/19/colloquialism-digital-certificate-part2.html

 

7、MAC防火墙是OpneVNP的数据包验证过滤机制,用来保证传输数据的完整性。该机制对控制通道中所有数据的封装头进行HMAC签名计算,并将计算结果附加在数据包中发送给对方,接收方使用相同HMAC密钥验证数据包签名。若数据包签名没有通过验证,将被立即丢弃。

 

5、MD5:Message-Digest Algorithm 5(信息-摘要算法),它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。需要获得一个随机长度的信息并产生一个128位的信息摘要。 MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。如果在以后传播这个文件的过程中,无论文件的内容发生了任何形式的改变(包括人为修改或者下载过程中线路不稳定引起的传输错误等),只要你对这个文件重新计算MD5时就会发现信息摘要不相同,由此可以确定你得到的只是一个不正确的文件。

 

 6、DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,首先,DES把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,并进行前后置换(输入的第58位换到第一位,第50位换到第2位,依此类推,最后一位是原来的第7位),最终由L0输出左32位,R0输出右32位,根据这个法则经过16次迭代运算后,得到L16、R16,将此作为输入,进行与初始置换相反的逆置换,即得到密文输出。

    DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密,如果Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式作为DES的输出结果。在使用DES时,双方预先约定使用的”密码”即Key,然后用Key去加密数据;接收方得到密文后使用同样的Key解密得到原数据,这样便实现了安全性较高的数据传输。

7、RSA算法是一个广泛使用的公钥算法。其密钥包括公钥和私钥。它能用于数字签名、身份认证以及密钥交换。RSA密钥长度一般使用1024位或者更高。RSA密钥信息主要包括[1]

 

8、SHA:安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要,因此抗穷举(brute-force)性更好。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。SHA-1 设计时基于和MD4相同原理,并且模仿了该算法。SHA-1是由美国标准技术局(NIST)颁布的国家标准,是一种应用最为广泛的hash函数算法,也是目前最先进的加密技术,被政府部门和私营业主用来处理敏感的信息。而SHA-1基于MD5,MD5又基于MD4。

 

9、SSL协议中涉及的加密算法主要有三种:密钥交换算法、数据加密算法和散列算法。其中密钥交换算法采用非对称密钥加密算法如RSA或DH,用于通信双方密钥协商过程:数据加密算法采用对称密钥加密算法如DES、RC4等,使用密钥交换算法协商的密钥对数据进行加密;散列算法用于数据的完整性检查,采用MDS,SHA等。

 

Ø         n:模数

Ø         e:公钥指数

Ø         d:私钥指数

Ø         p:最初的大素数

Ø         q:最初的大素数

Ø         dmp1e*dmp1 = 1 (mod (p-1))

Ø         dmq1e*dmq1 = 1 (mod (q-1))

Ø         iqmpq*iqmp = 1 (mod p )

其中,公钥为ne;私钥为nd。在实际应用中,公钥加密一般用来协商密钥;私钥加密一般用来签名。

原创粉丝点击