数字签名的简单理解
Posted Robin_Aim
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字签名的简单理解相关的知识,希望对你有一定的参考价值。
数字签名的简单化理解@TOC
数字签名的简单化理解!
对于数字签名,网上有很多大神解释的很详细了,我在这里解释的方法更加通俗易懂,更适用于入门级理解,已经尽可能的浅显,希望可以对大家有用!
评论区欢迎大家理性讨论!喜欢的点点赞啊!!!啾咪!!!
-
什么是数字签名
-
数字签名的意义
-
数字签名的实现
-
市场上的数字签名使用
-
总结
1. 什么是数字签名
简单来说,数字签名就是“女朋友在你脖子上的草莓”,单单一个“草莓”是没什么意义,但是当“草莓”放在了“脖子”上,就很能说明问题了。同理,数字签名本身的意义是有限的,但是和文件放在一起,就可以起到认证的作用。
2. 数字签名的意义
1.签名认证:数字签名在网络交易上和实际签名一样的认可功能;
2.防篡改:通过对数字签名的验证,保证文件在传输过程中未被篡改;
3.验证数据的完整性:若文件有丢失,签名将不完整;
4.仲裁机制:对交互过程出现抵赖,那么用数字便于仲裁;
5.保密性:保证数据在被中途截取后无法获得其真实内容;
6.防重放:可以防止重放攻击;
7.多重数字签名:通过多次数字签名,对文件数据进行多人认证。
3. 数字签名的实现
关于这部分,要一步一步来了,就像是新婚之夜一步一步走向新娘一样。
3.1 首先要知道的几个概念
加密和认证的关系就像是厨师和服务员,一个关注菜品一个关注服务质量,虽然都是在餐厅工作,但是差别还是很大的。
对称加密和非对称加密,就像是吃印度菜和吃中餐,一个是抓起来就塞嘴里,追求效率;一个是两跟筷子缺一不可,注重品质。
公钥和私钥就是筷子的两根啦,不过一根筷子是公开的,大家都可以用;另一根筷子是自己的,不能随便展示给别人。
3.2 加密的一般流程
看!A用公钥把鸡腿加密之后,就是把鸡腿锁在了箱子里,把箱子传给B,这样就算是箱子被别人劫走了,“劫匪”也是打不开箱子,从而保护鸡腿的安全性。B拿到箱子之后,用自己的 私钥 来解密,打开箱子,就可以得到鸡腿啦!
3.3 数字签名和验证
签名和认证是两个完全不同的步骤,首先来看“数字签名”
HASH在我的上文已经解释过了,这里就不再多说了,当然也可以使用其他的散列方法
最终发送的是两部分,“A的原文”+“数字签名”
再来看“数字验证”
这一步骤,相当于你室友来检验你脖子上的草莓到底是不是你女朋友的,什么?怎么检验?当然是检验是否一致了!不要问我你的室友是怎么知道你女朋友草莓形状的。
4. 市场上的数字签名使用
注意图中的钥匙方向,代表着不同的意思。
注意:实际使用时,有着各种各样的方法,这里只是例举了其中一种
其中A是发送方,B是接收方
在发送方,除了生成数字签名之外,还要对“A的原文”和“数字签名”一起做对称性加密,得到“加密后的信息”,其中此处使用对称性加密的主要原因在于其快速性。同时,将对称性加密的密钥用B的公钥加密,相当于把钥匙用信封包起来了。发送的内容是:“加密后的信息”和“装着钥匙的信封”
在接收方,接收“加密后的信息”和“装着钥匙的信封”。
- 用“B的私钥”将“信封”打开,得到对称性加密的钥匙;
- 用得到的钥匙解密“加密后的信息”,得到“A的原文”和“数字签名”
- 进行常规的验证。
5总结
采用数字签名,能确认以下两点:
- 信息是由签名者发送的;
- 信息未曾作过任何修改;
总结一下喽!
-
数字签名和验证广泛应用于银行卡和比特币中,安全性有保证;金融领域的应用技术,安全性嘎嘎的。
-
主要涉及到的是:HASH算法、加密解密;这一部分目前是比较成熟的,无论是hash,还是各种加密,网上都可以找到代码,根据需要整合一下即可,难度不大。
-
如果要将这一数字签名和验证在单片机上实现,需要根据单片机的型号来修改代码,在51、ARM等上面实现难度一般,在FPGA上面实现难度稍有增加。
鉴于我的老本行是C/C++,之后会分享相关的代码,可以直接在单片机中使用的那种。对于Verilog的代码分享,看有没有小伙伴想看喽。
评论区里欢迎大家理性讨论!!!看完了记得点个赞啊!!!拜托了对我真的很重要!!!
以上是关于数字签名的简单理解的主要内容,如果未能解决你的问题,请参考以下文章