关于加密的一些概念

来源:互联网 发布:js用偶数奇数隔行变色 编辑:程序博客网 时间:2024/05/19 14:37

================================
加密和认证

   加密和认证是两回事。
   加密,是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容。所以,加密的重点是数据的安全性。
   认证,判断某个身份的真实性,确认身份后,系统才可以依据不同的身份给予不同的权限。所以,认证的重点在于用户的真实性。
==================================
非对称密钥密码的主要应用是公钥加密和公钥认证。

1.基于公钥的加密过程
  Alice要把一段明文通过双钥加密技术发送给Bob,Bob有一对公钥和私钥,过程如下:
   i.  Bob将他的公钥传送给Alice
   ii. Alice用Bob的公钥加密她的消息,然后传送给Bob.
   iii.Bob用他的私钥解密Alice的消息。

2.基于公钥的认证过程
  Alice想让Bob知道自己是真实的Alice而不是Alice的妈妈,因此Alice只要使用私钥对文件签名发送给Bob,Bob使用Alice的公钥对文件进行解密,如果可以解密成功,就证明Alice的私钥是正确的,因而就完成了对Alice的身份鉴别。
   i.  前提是Bob有Alice的公钥
   ii. Alice用她的私人密钥对文件加密,从而对文件签名。(这个签名会比较慢,所以一般Alice会对文件进行文件摘要的操作,也就是计算文件的hash值,得到固定长度的数据(比如20个byte),然后用私钥对这个固定长度的数据加密,这个加密的结果就是Alice对这个文件的签名)
   iii.Alice将签名的文件传送给Bob.(传送的过程是Alice将自己的文件加密后连同签名一起传给Bob)
   iv. Bob用Alice的公钥解密文件,从而验证签名。(过程应该是Bob把Alice传过来的加密文件计算出文件摘要,然后把Alice的签名文件用Alice的公钥解密,之后和刚刚计算出来的文件摘要进行比较,如果一致,就算是验证了Alice的身份)

==============================================
U盘和加密狗

    U盘和加密狗外形有些相似,但是内部完全不一样。U盘只是一个存贮器芯片和简单的附属电路,而智能卡加密狗都具有一个单独的cpu或者加密芯片,可以执行相当复杂的加密算法。
    有的开发商,想防止U盘中的软件被复制,又不想买那么贵的加密狗,因此要把软件绑定在U盘上执行,当U盘拔下来的时候,软件就不能正常运行。
    对软件安全不是特别在意的情况下,可以在软件中采用绑定U盘内部ID的方式来实现这种加密。先使用程序将U盘的ID读出来,然后根据这个ID生成License文件,当解密者将U盘内的文件复制到其它电脑的时候,软件执行过程中读取U盘ID失败,因此就无法校验License.
   通常两个U盘的id是不相同的,这样就实现了软件绑定U盘的加密方式。
   这个方法不安全在于,大多数U盘厂商有内部量产工具,可以修改U盘内部ID号码,这就存在了复制U盘的可能性,但对于普通用户来说,通常没有修改U盘内部ID的能力,因此也具有一定的加密性。

   硬件加密锁,俗称“加密狗”。