为什么要使用加密技术?
1、防止假冒,使用数字签名
2、防止伪劣,使用文件加密
什么是文件加密技术
文件加密技术是用来阻止以任何非法获取方式夺得文件后进行阅读、修改等操作,主要是确保文件在传输过程中的安全。
典型数据加密算法
基于“消息摘要”的算法
“消息摘要”(Message Digest)是一种能产生特殊输出格式的算法。这种加密算法的特点是无论用户输入什么长度的原始数据,经过计算后输出的密文都是同定长度的。这种算法的原理是根据一定的运算规则对原数据进行某种形式的提取,这种提取就是“摘要”,被“摘要”的数据内容与原数据有密切联系,只要原数据稍有改变,输出的“摘要”便完全不同,因此基于这种原理的算法能对数据完整性提供较为健全的保障。
但是,由于输出的密文是提取原数据经过处理的定长值,所以它已经不能还原为原数据,即消息摘要算法是“不可逆”的,理论上无法通过反向运算取得原数据内容,因此它通常只能被用来做数据完整性验证,而不能作为原数据内容的加密方案使用,否则谁也无法还原。
由于“摘要”算法加密的数据仅能作为一种完整性和正确性验证的凭据使用,如果要对整个文档数据进行加密,就不能采用这种“不可逆”的算法
常用摘要算法有MD5, SHA.1
对称密钥
此类算法通过一个被称为“密钥”的凭据进行数据加密处理,接收方通过加密时使用的“密钥”字符串进行解密,即双办持有的“密钥”相同(对称)。如果接收方不能提供正确的“密钥”,解密出来的就不是原来的数据了。
通过定期在通信网络的源端和目的端同时改用新的密钥,便能更进一步提高数据的保密性
常用算法:DES,RC2,RC4,RC5
非对称密钥
非对称密钥密码算法使用两个密钥:公开密钥和私有密钥,分别用于对数据的加密和解密,即如果用公开密钥对数据进行加密,只有用对应的私有密钥才能进行解密;如果用私有密钥对数据进行加密,则只有用对应的公开密钥才能解密。
常用算法:RSA
如何实现签名和加密
(1)信息发送方将要发送的信息通过信息摘要方法产生一个信息摘要,并对信息摘要用自己的私钥进行加密,形成数字签名,然后将其附在要发送信息的后面。
(2)信息发送方将文件(信息和数字签名)用随机生成的对称密钥加密
(3)信息发送方再用信息接收方的公钥对对称密钥进行加密后通过网络发送给信息接收方。
(4)信息接收方对收到的对称密钥用自己的私钥进行解密。
(5)信息接收方用得到对称密钥对文件(信息和数字签名)进行解密
(6)信息接收方用发送方的公钥对数字签名进行解密得到信息摘要,同时对收到的信息再用相同的信息摘要方法产生一个信息摘要。
(7)信息接收方将解密后的信息摘要与重新产生的信息摘要进行比较。如果二者一致,说明信息在传输过程中没有改变;如果不一致,说明该信息在传输过程中已被人篡改过。
PKI公钥组织
如何确认公钥的身份即对应的对象
PKI 是一种新的安全技术,它由公开密钥密码技术、数字证书、证书发放机构(CA)和关于公开密钥的安全策略等基本成分共同组成的。
PKI 的核心组成部分CA( Certification Authority),即认证中心,它是数字证书的签发机构。数字证书,有时被称为数字身份证,是一个符合一定格式的电子文件,用来识别电子证书持有者的真实身份。
就象公安局发放的身份证一样,认证中心发放一个叫"数字证书"的身份证明。
这个数字证书包含了用户身份的部分信息及用户所持有的公钥。象公安局对身份证盖章一样,认证中心利用本身的私钥为数字证书加上数字签名。任何想发放自己公钥的用户,可以去认证中心申请自己的证书。认证中心在鉴定该人的真实身份后,颁发包含用户公钥的数字证书。其他用户只要能验证证书是真实的,并且信任颁发证书的认证中心,就可以确认用户的公钥。
根证书
根证书是CA认证中心给自己颁发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任。
从技术上讲,证书其实包含三部分,用户的信息,用户的公钥,还有CA中心对该证书里面的信息的签名,要验证一份证书的真伪(即验证CA中心对该证书信息的签名是否有效),需要用CA 中心的公钥验证,而CA中心的公钥存在于对这份证书进行签名的证书内,故需要下载该证书,但使用该证书验证又需先验证该证书本身的真伪,故又要用签发该证书的证书来验证,这样一来就构成一条证书链的关系,这条证书链在哪里终结呢?答案就是根证书,根证书是一份特殊的证书,它的签发者是它本身,下载根证书就表明您对该根证书以下所签发的证书都表示信任,而技术上则是建立起一个验证证书信息的链条,证书的验证追溯至根证书即为结束。所以说用户在使用自己的数字证书之前必须先下载根证书。
说明:
1、如果需要发送加密的文件,需要使用密钥(对称)公钥(非对称)加密,这样的结果是只有拥有密钥(对称)或者私钥(非对称)的人才能阅读。
2、如果需要在加密的文件上签名,需要和加密文件同时发送签名文件,并用私钥加密签名,这样的结果是只要拥有公钥的人都能阅读,但只有拥有私钥的人才能修改。
3、如果需要保证文件的完整性和正确性,需要使用信息摘要技术,并把该摘要和文件同时加密发送,这样的结果是可以保证文件在传输过程中可能发生的信息丢失被发现。
4、接收者的文件加密公钥和发送者的签名公钥需要有CA颁发的数字证书来证明真伪,这样的结果是避免发送方收到伪造的公钥并错误的使用其去加密文件或者接收方收到伪造的公钥并用其错误的验证签名的真伪。