




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、然而它太慢了非对称加密算法有一个缺点加密速度慢,或者说得更拽一些,编码率比较低。例如在上一篇里我给Clark 传的那个 1GB 的,进行非对称加密足足用了 66 小时。那个借条小一些吧,也用了将近 2 分钟。所以在实际使用非对称加密的时候,往往不直接对文件进行加密,而是使用摘要算法与非对称算法相结合(适用于数字签名)或对称加密和非对称加密相结合(适用于加密传输文件)的办法来解决或者说绕过非对称加密算法速度慢。摘要算法摘要算法,又叫作Hash 算法或散列算法,是一种将任意长度的输入浓缩成固定长度的字符串的算法,注意是“浓缩”而不是“压缩”,因为这个过程是不可逆的。它的特点是:1. 不同内容的文件
2、生成的散列值一定不同;相同内容的文件生成的散列值一定相同。由于这个特性,摘要算法又被形象地称为文件的“数字”。2. 不管文件多小(例如只有一个字节)或多大(例如几百 GB),生成的散列值的长度都相同,而且一般都只有几十个字符。这个神奇的算法被广泛应用于比较两个文件的内容是否相同散列值相同,文件内容必然相同;散列值不同,文件内容必然不同。如果您用过 BT 或eMule,应该对散列值比较熟悉了,右图分别是BT 和eMule 的文件详细信息的截图。细心的朋友可能已经注意到了,BT 和eMule 的散列值的长度不一样,这是因为它们所使用的摘要算法不同,目前比较流行的摘要算法主要有 MD5 和SHA-1
3、,您可以在.Net 的System.Security.Cryptography 命名空间找到它们的身影。另,由于本篇是只重理解和应用的白话文,所以上面对摘要算法的并不十分全面严谨,喜欢看文言文的朋友可以看这篇Hash 算法及其应用。还有就是 MD5 和SHA-1 算法已经从理论上被山东大学教授及其研究小组(向中国的科学家致敬!),不过并不是这两个算法从此就不能用了。实际对文件作数字签名的方法由于非对称加密的速度实在太慢了,所以在实际对文件作数字签名的时候,例如对上一篇中我用Word 写给Clark 的借条进行签名,总是先生成这个借条的散列值,然后用私钥对这个散列值进行非对称加密,然后把加密后的
4、散列值(就叫它“散列值密文”吧)和借条一同发送到 Clark 那里。Clark 在收到借条和散列值密文后,用从网上公钥将散列值,然后 C的lark 自己再生成一次借条的散列值,比对这两个散列值是否相同,如果相同,就叫作验证签名成功。由于散列值只有几十个字节,所以签名的速度还可以忍受。看下图会更直观一些。思考题虽然只是对借条的散列值进行了非对称加密,但是此过程仍然具有防篡改、防抵赖的作用,为什么?又太麻烦了费了好大的劲终于解决了数字签名速度慢。但是上面那个复杂的签名过程用户能接受吗?当然不能!所以须要开发出一个数字签名的程序来简化签名过程,最好让数字签名看起来就跟传统的盖章差不多。这样的程序已经
5、有了,叫作电子签章程序。 它是一个桌面程序,一般以Word 或Excel 插件的形式存在。下面就演示一下用电子签章程序对借条进行签名的过程。1. 安装了电子签章程序后,Word 和Excel 中就会多出一个签名用的工具条。2. 写好借条,存盘。然后用鼠标点击“添加电子签章”按钮。然后在需要显示的位置上再按一次鼠标左键。3. 电子签章程序会弹出一个框,注意在这步一定要勾选“签章后锁定文件”复选框,至于为什么要这样,稍后再讲。然后点击确定按钮。4. 在上一步按确定按钮后,电子签章程序还会提示要求我输入存放私钥的USB-Key 的使用,然后Word中就会出现一个了。这个是我提供给数字中心,在制作US
6、B-Key的时候就烧录在USB-Key之中的。5. 之后我把借条发送给Clark。Clark 想验证签名的话只要按“验证所有”就可以了。电子签章会弹出如左图所示的框。是不是即直观又简单?那么诸如“散列值”、“公钥”这些东东都跑到哪里去了呢?它们都被电子签章程序到Word 文档中的某个特定的地方了,如果你熟悉Word 文档的结构,是不难找到它们的。电子签章程序的Bug电子签章程序本来可以支持两种用法:1. 在上面的第 3 步不勾选“签章后锁定文件”复选框,这样在进行了数字签名之后,仍然可以更改Word 文档的内容。当然如果在进行了数字签名之后又更改了Word 文档的内容,验证签名操作就会失败。这
7、时需要再次进行签名操作。2. 在上面的第 3 步勾选“签章后锁定文件”复选框,这样在进行了签名操作后,Word 文档的内容就再也无法更改了。但是,电子签章程序有一个ug在进行了签名操作后,如果只是更改了文字的颜色,验证签名操作仍然会成功。这就意味着,如果我在 Word 中写到“向公司借款 2000 元”,然后把“2000”的最后一个 0 的颜色改为白色,在看来就是“向公司借款 200 元”。欣然签章,然后我再把那最后一个 0 的颜色改为黑色,就又变成了“向公司借款 2000 元”,而且验证签名居然会成功。这也是为什么我在上面的第 3 步要强调一定要勾选“签章后锁定文件”复选框了。我猜测造成这个
8、Bug 的原因很可能是因为电子签章程序仅仅对文档中的纯文本生成散列值,而不是对文本+全部格式信息一同生成散列值。大家在电子签章程序前一定要作这方面的测试。数字信封可以通过使用信息摘要技术解决数字签名的速度问题,那么数字加密的速度问题怎么解决呢?相信除了我和Clark 以外,很少有人愿意为传送一个而等待 66 个小时。其实这个问题也简单,可以用对称加密与非对称加密相结合的方式来解决这个问题。对称加密速度快,但是必须在传送密文的同时传送密钥;非对称加密速度慢,但是不需要传送密钥。把两个技术一起使用,各取优点,就 OK 了。方法是,先把用对称加密算法加密,然后把的密文与密钥的密文同时传送给 Clar
9、k。Clark 收密钥用非对称加密算法加密。再将到这两样东西后,先用自己的私钥将密钥的密文,得到密钥,再用密钥将小电的明文。Clark 收到的这两样东西影的密文,就得到了的密文和密钥的密文加在一起就叫作数字信封。看下图会更直观一些。数字非对称加密的公钥和私钥的长度都很长,一般都在 1024 位以上。这么长且无规律的,用户是记不住的,所以只能保存在文件中啦。保存了公钥的文件就叫作数字。且慢,这个定义是十分错误的!为什么呢?想第 1 篇里的那个我给Clark 发送的例子。例子中我在网上了Clark 的公钥(也就是数字),然后用它对进行非对称加密,然想只有拥有Clark 的私钥的Clark 才能Cl
10、ark 的老婆一定没辙啦。没想到螳螂捕蝉,黄雀在后,我Clark 的公钥的那个是Clark 的老婆制作的!里面的公钥统统都是Clark 的老婆的公钥!,用Clark 的私钥解不开,反倒是只有用Clark老婆的私钥才能解开,用Clark 的话来说,就是“无语了”。所以聪明的你一定想到了,数字之所以可以称之为“”,就一定要有“防伪”功能。方法是,数字里不但要包含Clark的公钥,还要包含Clark 的自然信息(、等),并且最重要的,要有颁发部门对颁发部门也都有自己的数字称之为根和与之配这些信息的数字签名(每个对使用的私钥)。这样我就可以验证数字的真伪了。所以,让重新定义数字,数字是由一个机构的,至
11、少包含一个公开密钥、持有人(或)的名称以及中心对这些信息的数字签名的文件。一般情况下中还包括密钥的有效时间,发证机关(证书中心)的名称,该的序列号等信息,的格式遵循ITUT X.509 国际标准。您可以使用IE的菜单“工具|ernet选项.- 内容 -.- 受信任的根颁发机构”来查看 IE 中已经安装的根。点击“导入.”按钮可以导入新的根。的解决方案USB Key已经知道, 非对称加密的密钥很长,一般都在 1024 位以上,所以只能保存在文件里。好,我把私钥文件保存在了硬盘上,却难保哪天这个文件不会被某个坏蛋拷贝走。然后,在这个“没有人知道你是一条狗”的网络世界里,他就变成了我他可以冒充我写借
12、条甚至向;的合同;他甚至可以冒充我签署契,300 块钱就把他可以冒充我跟别的公司签署上亿我卖了而我却懵然不知。直到有一天,我突然发现自己突然增加了几百万外债、公司把我 Fire 了、一个 9 岁的小.拿着契等在我家门口声称我已经是所以千万不能把私钥保存在硬盘上。那么保存在U 盘上,并且把U 盘放在的口袋里怎么样呢?好像好了一些,但是你在签名的时候还是得把U 盘插在电脑上吧?可知道你的电脑中有多少木马程序正在用For 循环扫描你的USB 端口,就等着拷贝你的私钥?需要的是无论如何也不可能被别人的私钥保存方案,USB Key 应运而生。USB Key是一种USB 设备,外形就跟U 盘一样,只不过无
13、法用它来存取文件。会使用特殊烧录到USB Key 中。你无法的设备将你的数字、私钥和电子签章程序所要使用的使用资源管理器或木马程序取得USB Key 中的私钥,当需要用私钥进行签名时,直接通过USB Key 的驱动程序提供的API 将明文传输到USB Key 中,由USB Key 中的加密对明文进行加密,加密结果会以API 函数的返回值的形式返回,这样就可以有效解决私钥被坏蛋了。还有就是 USB Key 本身还有一个简短的使用,每次加密前使用者必须输入正确的使用方能使用,这样即使USB Key 不慎丢失,也不用担心了。USB Key 的缺点USB Key 有一个不大不小的缺点速度有点慢。例如我手里正在试用的这款 USB Key,连续签 10 个像“1234”这样的数据需要约 13 秒。这意味着如果你的信息系统只提供一次一条数据的签名方式,那么这 1 秒钟的延迟用户根本感觉不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025春季【高二】【蛇启新航 蜕变前行】开学第一课-教案
- 2025年押车放贷合同模板
- 六年级上册数学教案- 负数的实际应用 西师大版
- 《梯形的面积》(教案)五年级上册数学青岛版
- 人教版数学三年级上册单元练习卷(易错题)-第七单元-长方形和正方形(含答案)
- 2024年品质生活电器项目投资申请报告
- 第六单元《慈母情深》《父爱之舟》场景描写教学设计-2024-2025学年语文五年级上册统编版
- 2025年杭州医学院单招职业适应性测试题库附答案
- 二零二五年度酒店客房出租管理合同
- 二零二五年度个性定制婚约解除合同示范
- 幼儿园小班音乐游戏《听声学走》课件
- GB/T 30661.10-2024轮椅车座椅第10部分:体位支撑装置的阻燃性要求和试验方法
- 空调制冷管道施工协议
- 2024-2030年艺术摄影服务产业发展分析及发展趋势与投资前景预测报告
- 【光明乳业股份有限公司财务报表探析(定量论文)7800字】
- 肺部感染临床路径
- 高中英语3500词(乱序版)
- 钢结构吊装技术交底
- 2024年广东省广州市黄埔区黄埔街道办事处招聘4人历年高频难、易错点500题模拟试题附带答案详解
- 数学家祖冲之课件
- 小学二年级语文下册-【口语交际:注意说话的语气 名师教学设计】
评论
0/150
提交评论