谈谈网银和USB Key (一)

谈谈网银和USB Key (一)

 

转自:http://apex.ncksoft.com/archives/143#more-143

基础知识

我们常见的加密,使用的是“对称加密算法”,也就是说,用一个密码加密的东东,同样可以用这个密码来解密。我们称这样的加密算法为“对称加密算法 ”,用于对称加密算法中的密码,我们称之为“对称密钥”。一旦别人知道了你的密钥,那么他就可以任意的解密你的秘密数据了。这样的算法很多,常见的有 DES,3DES,AES,Blowfish等等。

使用USB Key来保证网银的安全,实际上是利用了PKI(公开密钥体系)技术中的数字证书应用,而PKI技术中至关重要的一点就是“保证私钥的安全”。为了理解所 谓的“保证私钥的安全”,我们先举一个简单的例子:假定有这样一种计算方法,可以将一篇文章用一个密钥A加密,要想解密的话,必须用另一个密钥B来解密, 反过来也一样,用密钥B加密之后得到的密文只能用密钥A来解密。这里的密钥A和密钥B一定是成对出现的,一一对应,绝对不会出现用密钥A加密的东西可以用 密钥C、密钥D…等等来解密。这样的算法我们称之为“非对称加密算法”,相对应的,这里的密钥A和密钥B我们称之为“密钥对”,因为它们是成对出现的。密 钥对中的一部分可以随意公开,例如其中的密钥A,我们称之为“公开密钥”,简称公钥。而另外一半是自己持有的,需要保密,我们称之为“私有密钥”,简称私 钥。所谓“公开密钥体系”,就是指这里的公钥了。我们常听到的RSA,就是这样一种算法。此外还有DSA、ECC(椭圆曲线算法)等等。

使用公开密钥体系,不仅仅可以用来对数据加密,还可以用来确定身份。试想一下:你有一对密钥对(A和B),其中A是公钥,被放在网上,任何人都可以 取得。现在有人(比如张三)想给你发送一份邮件,于是张三在网上找到你的公钥,然后将邮件用你的公钥加密并传送给你。那么,只要你的私钥没有泄露出去,就 只有你能够解密这封邮件(使用和A相对应的私钥B来解密)。即使邮件在网络上传输的过程中被黑客获取了,没有私钥B,他也无可奈何。这就意味着,使用公开 密钥技术,可以保证只有指定的人(其实就是指定的私钥啦)才可以阅读私密信息。

 

反过来,如果张三先用他自己的私钥对邮件加密,然后再用你的公钥对密文再次加密,那么不但只有你能够阅读这封邮件,而且还可以确认这封邮件一定是张 三发出来的。这是因为你在收取到邮件之后,首先用自己的私钥解密,得到的还是一堆密文,然后你必须用张三的公钥再次解密,才能得到邮件的原文。既然是使用 张三的公钥才能解密,那么这封邮件一定是用张三的私钥加密过的。

此外,还有一种用法:例如你的老板(或者干脆你就是老板)要发布一份公告,内容为“给所有员工补助500元”,要求每个员工都能够看到,不用加密。 但是这封邮件在网络上传输的时候,被有心人篡改了,变成了“给所有员工补助5000元”,喔,老板亏大了~~~为了防止这种事情的发生,老板将公告用自己 的私钥加密并附加在公告的后面,然后一起发送。这样每个员工都能够用老板的公钥解密附加的密文,并与公告原文对比,于是就能够知道邮件在传输的过程中是否 被篡改了。

 

高级阅读

除了对称算法和非对称算法之外,还需要了解一种加密算法,称之为“散列”(也有人称之为“杂凑”、“哈希”等,英文名为Hash),与对称/非对称 算法不同的是,散列算法是不可逆的,也就是说,加密后的数据是无法再解密了,常见的散列算法有MD5、SHA1等。散列算法还有一个特性就是无论原文有多 长,散列之后的结果总是固定长度。例如MD5散列的结果总是16字节,SHA1散列的结果总是20字节。

非对称加密算法的加解密速度要远远低于对称加密算法,所以在实际应用中,往往会将对称、非对称及散列算法混合使用,以提升性能。例如,张三给你发邮 件的时候,先产生一个随机数,用这个随机数来做对称算法的密钥并对邮件加密,随后用你的公钥对这个随机数加密,然后将邮件的密文和随机数的密文一起发给 你。你收到邮件之后,先用自己的私钥解密随机数,然后用随机数作为对称算法的密钥解密邮件。

又如,老板发布公告的时候,将公告进行散列,然后用老板的私钥对散列后的结果加密(这个加密结果,就是通常所说的“数字签名”),而员工收到公告的 时候,只需要再次对公告进行散列,并用老板的公钥对数字签名进行解密,然后将解密结果和公告的散列结果做对比,就能了解公告是否被篡改了。这个对比的过 程,就是通常所说的“验证签名”。

由此可见,公开密钥体系能够做到:1. 数据加密; 2. 不可抵赖(就是发送者无法否认); 3. 防止数据被篡改。

有了这样的基础知识,就容易理解“保证私钥的安全”是多么重要了。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值