浅析数字签名的工作原理 【小白级别的原创文章 仅供扫盲】

浅析数字签名的工作原理【小白级别的原创文章仅供扫盲】

 

最近发现个问题,很多摆弄电脑多年的朋友对“数字签名数字证书”的概念一知半解,也搞不清它们的区别,对其重要性更是不得而知。看了看网上关于“数字签名”的解释,不是晦涩难懂就是枯燥高深,难怪很多朋友没耐心去了解它。

在正文之前先说几句废话,本人是个由内而外、白里透白的小白,稍微复杂点儿的东东一概不懂,稍微费点儿脑子的东东一概不碰,所以水平有限。为了提高内容的可读性,尽量避免乏味无趣的概念定义,高手务必无视此文。

 

数字签名是啥啊?

数字签名、数字化签名、电子签名、数字证书,四者概念不同。

你用笔在纸上签上名字或盖个印章,再用扫描仪数码相机之类的设备折腾到电脑里生成图片文件,这叫“数字化签名”。你可以复制粘贴到文档、作品中以声明:“这是我的大作啊!不是别人的啊!”试想一下,在这个连猴子都会用鼠标玩滚轮的挨踢时代,这种签名方式安全性可想而知。

   “电子签名”是个广义概念,而“数字签名”则是电子签名的一种,也可以说是电子签名技术的一个子集。它通过密钥算法生成一系列代码组成电子密码进行签名,以代替书写签名或盖章,通过技术验证,其准确度是传统手工签名和图章验证无法比拟的。

在阐述数字签名、数字证书的概念时需要先知道:一般来说,加密技术有两种——对称加密和非对称加密。

还是举例说明形象些。

所谓“对称加密”,你可以把它理解成你和银行之间的关系。要想从银行取钱,你必须正确输入密码(爱好抢银行的朋友可以无视),这个密码就是你和银行之间共享的密钥,且这个密钥不应有第三方知道。这种加密方式对你来说倒是蛮方便的,但对银行来讲却非常麻烦,因为银行不是专为你一个人开的,管理众多密钥对于技术和维护成本来说都是极限挑战。而且,一旦密码被第三方知道,后果不堪设想。可以说这种方式并不怎么可靠。

另一种是“非对称加密”,也叫做公开密钥加密,理解起来比前者略复杂些。

假设你叫王翠花,有两把钥匙——“翠花专用公钥、翠花专用私钥”。你把公钥每人一把的给了和你经常发E-mail的网友赵泰短、张麻子和刘大棍。

有一天晚上,刘大棍给你写信并用你送他的“翠花专用公钥”加密了信的内容——“尰a#9,潃蟽@荝篹wp%衄!”(别告诉我你能看得懂哦)。

而你在收到信时利用你的“翠花专用私钥”将其解密——“美女啊,见面约个会呗”。可以说,这封信是非常安全的,即便落到别人手中,没有“翠花专用私钥”解锁,鬼也看不懂。

在你给刘大棍的回信中,你使用了“翠花专用私钥”加密了内容:“+8%屵,攷樖*f6爴爯畀s&甁!”并通过RSA算法生成加密摘要,这就是“数字签名”。在加密的基础上,以表示这封信确实是你写的。

刘大棍在收到回信后,用你给的“翠花专用公钥”得到如下内容:“不去,因为张麻子比你帅!”刘大棍看着公钥读取出的具有唯一标识的“数字签名”,只能面对残酷的现实。

事情还没完,有个叫陈建仁的骗子悄悄出现,偷偷使用赵泰短的电脑,把自己的公钥换走了你给的“翠花专用公钥”,这样就能冒充你给赵泰短写信:“巹帱5&巪帋z7x瀥,灲瀅茍@艴艝%-a踒赿!”

赵泰短在不知情的情况下,用假冒的“翠花专用公钥”解读此信:“咱俩是不可能的,没人能接受你的短处!”

谨慎小心的赵泰短发现有些不对劲,亲自给你打电话证实,而你告诉他:“那信不是我写的呀,我觉得你挺好的啊。”

放下电话后你很气愤,居然有人敢冒充你。为了避免以后再发生此类事件,你来到了“证书中心certificate authority,简称CA)”为你那把“翠花专用公钥”做认证,证书中心对你的公钥和相关信息一起加密,并颁发给你一个独一无二的证书,这就是“数字证书”。

从此,你的朋友们再收到你的来信时,要先通过证书中心给的公钥解开“数字证书”,才能获得你的真实“翠花专用公钥”,这样才能证明“数字签名”是否真是你的。

 

数字签名的种类有哪些啊?



数字签名的加密算法有很多,比较常见的是HASH签名、DSS签名和RSA签名,挨个说说吧(喝口水先):

Hash(哈希)签名——也叫做数字摘要法、数字指纹法。大家比较熟知的MD5SH-1算法就是哈希签名的通用加密标准。它的应用非常广泛,优点是加密解密快,CPU负担小,属于弱计算密集型算法。最大的局限就是接收方必须持有发送方的密钥副本,也正是由于双方都持有生成签名的密钥(你的MD5计算器就是密钥生成工具,发送/接收方都有),所以被伪造签名的可能性大大增加。据说网上经常爆料的那些被破解的签名,也是来自此算法。

DSS签名——是一种相当安全的公钥算法,米国政府的技术,呵呵。可以说是SchnorrElGamal算法的变种,安全性基于有限域上的离散对数,特点是不涉及专利或版权问题。这就好比压缩格式中rarzip的关系,我听说要想破解这玩意儿,按现在的计算机运行速度,需要“1.5乘以1012次方”年,当然,这个说法我等平民无从考证。

RSA签名——正如上文所举的例子,它也是一种基于公钥算法的签名,并可以说是目前最为流行的数字签名,Windows系统本身就包含RSA类库,我们所熟知的Internet ExplorerWindows Media PlayerJavaFlash PlayerOutlookFirefox等都包含RSA算法,和Hash签名相比,在公钥系统中,由于生成签名的密钥只存储于用户的计算机中,安全系数陡然增加了很多,听朋友说,MacOS用的也是这个。

其它算法还有很多,就不逐一举例了。本想结束此文,突然又想到了一个和数字签名概念相关的题外话:

现在有很多病毒非常可怕,可怕之处不仅仅在于它的破坏性,最重要的是当它们感染exe文件后,会有意不去破坏exe中和数字签名有关的部分!我觉得吧,识别猫腻的方法说简单也简单,那就是比较哈希值。说复杂也复杂,谁也没功夫去比较无数被感染的exe,呵呵。现在很多网站已使用https技术,这就是数字签名和数字证书技术在互联网的一个重要应用,无论是资源下载还是网上购物(这里不排除钓鱼网站的存在),安全性自然也大了许多,貌似还有FQ的作用?试试Google的相关页面哦,呵呵!



既然我用废话开始了此文,就再用废话来结束此文吧:

 

本想引入一些离散数学的基础知识来说明公钥、密钥的生成方式,但想了想必然会搞出公共模数、素数、随机数这些无聊的玩意儿,这就和本文的初衷背道而驰。所以,认真看完这篇文章的朋友,不要指望能从理论上搞清数字签名的工作原理,仅仅是从概念上有个感性认识即可,严格来讲连“浅析”都算不上,扫盲才是核心目的。

 

小白我的水平嘎嘎有限,大道理也讲不出,文章写了三个多小时,原创不易,欢迎高手斧正,我只求不被拍死。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值