【在厨房想30天的演算法】Day 29 资讯安全与演算法 : 数位签章

Aloha!我是少女人妻 Uerica!话说你们知道哈利波特的角色中谁最有主见吗~佛地魔!因为他不会被别人牵着鼻子走 XD


好的~继昨天提到的讯息监别码,虽然能比对是否为发送者传来的,但却没办法证明原始资料是由谁制作的,也就是如果某一方突然坏坏想将对方的资料占为己有,或诬赖对方恶意捏造,也无法对证。所以又出现了数位签章的机制!

数位签章 Digital Signature

数位签章与讯息监别码一样,可以做身分监别与确认资讯内容完整性,另外还加入了不可抵赖性 Non-repudiation 的机制。讯息监别码是用共用金钥来解密与加密,且只要拥有金钥与密文者都可产生 MAC ,此机制无法确认谁才是原始资料拥有者。而数位签章则是用公开金钥密码系统的方式,产生私钥与公钥,将密文生成杂凑值後再用私钥加密 ( 此处的加密纯粹是为了制作数位签章,并不具加密意义 ) ,公钥则流通在外供他人解密并验证,因私钥不流通,故只有原始资讯拥有者才可加密,因此能确认资讯的作者是谁。
RSA、ECDSA 等算法都可以实现数位签章。

公开金钥密码系统无论加密或解密都较为费时,所以制作数位签章时,会先将密文经由杂凑演算法转为杂凑值,再加密。

之前提到公开金钥密码系统,是用公钥加密用私钥解密,其实公钥与私钥的差别是一个可在外流通,一个是自己私藏且独有的,并不拘限哪个要加密或哪个要解密!

数位签章 Digital Signature 图解

还记得昨天仙度瑞拉送了好吃的苹果给白雪公主,白雪公主想把苹果拿去镇上与他人享用,但大家看到白雪公主拿着苹果的景象都逃之夭夭,无奈的白雪公主问仙度瑞拉有没有什麽好方法能证明这个苹果是你做的,而且大家都可以知道呢~仙度瑞拉立刻想到数位签章这个好方法!

  • 首先,仙度瑞拉运用公开金钥密码系统的机制,做了私钥与公钥各一把
    wJDZotR

  • 并将密文苹果加入杂凑果汁机,得到了杂凑值
    9fWYbqe

  • 再将杂凑值使用仙度瑞拉私藏不外流的私钥来加密,变成被加密的杂凑值 ( 数位签章 )
    RIZcsEX

  • 传送资料时除了传送加密的资料本身外,还附上了公钥与加密後的数位签章
    mCKnKmZ

  • 最後白雪公主可将密文苹果放入特定的杂凑果汁机,产生一组杂凑值。再将仙度瑞拉的数位签章,用公钥解密,并比对看看是否真是仙度瑞拉种的苹果。
    而且因为公钥可在外流传,所以镇上所有人都可以用这样的方式,确认这是仙度瑞拉种的苹果~
    Mzcx0v8


好的!感谢大家的阅读,鼻子是很重要的我宁可没主见,哈哈!掰掰明天见~


<<:  【Day 29】学 Go 之路的小检讨 + concurrent merge sort

>>:  [Day29] Scrum失败经验谈 – 没有经验的Scrum Master

[Day21]浅谈solidity

今天要介绍的是solidity,那今天会先跟大家简单介绍solidity以及浅谈开发环境! Sol...

Day24-Vuex核心概念与结构(part2)

接续前面的内容,还有几个东西没有研究到... 3. mutations 前面是学到的向仓库取资料的办...

Day 17 ( 中级 ) 立体空间 ( 三度空间 )

立体空间 ( 三度空间 ) 教学原文参考:立体空间 ( 三度空间 ) 这篇文章会介绍,如何在 Scr...

Day 07 Style

第七天~ 我们昨天写了个 Hello World 出来, 但是这只是单单把字给秀出来而已, 假如我们...

【C#】Fibonacci

简单来说~费氏数列从0 and 1开始~ 後面的每一个数~ 都是前两数相加得来~ 例如,0,1,1,...