iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
Software Development

少女人妻在廚房裡想不通的演算法系列 第 29

【在廚房想30天的演算法】Day 29 資訊安全與演算法 : 數位簽章

Aloha!我是少女人妻 Uerica!話說你們知道哈利波特的角色中誰最有主見嗎~佛地魔!因為他不會被別人牽著鼻子走 XD


好的~繼昨天提到的訊息鑑別碼,雖然能比對是否為發送者傳來的,但卻沒辦法證明原始資料是由誰製作的,也就是如果某一方突然壞壞想將對方的資料佔為己有,或誣賴對方惡意捏造,也無法對證。所以又出現了數位簽章的機制!

數位簽章 Digital Signature

數位簽章與訊息鑑別碼一樣,可以做身分鑑別與確認資訊內容完整性,另外還加入了不可抵賴性 Non-repudiation 的機制。訊息鑑別碼是用共用金鑰來解密與加密,且只要擁有金鑰與密文者都可產生 MAC ,此機制無法確認誰才是原始資料擁有者。而數位簽章則是用公開金鑰密碼系統的方式,產生私鑰與公鑰,將密文生成雜湊值後再用私鑰加密 ( 此處的加密純粹是為了製作數位簽章,並不具加密意義 ) ,公鑰則流通在外供他人解密並驗證,因私鑰不流通,故只有原始資訊擁有者才可加密,因此能確認資訊的作者是誰。
RSA、ECDSA 等算法都可以實現數位簽章。

公開金鑰密碼系統無論加密或解密都較為費時,所以製作數位簽章時,會先將密文經由雜湊演算法轉為雜湊值,再加密。

之前提到公開金鑰密碼系統,是用公鑰加密用私鑰解密,其實公鑰與私鑰的差別是一個可在外流通,一個是自己私藏且獨有的,並不拘限哪個要加密或哪個要解密!

數位簽章 Digital Signature 圖解

還記得昨天仙度瑞拉送了好吃的蘋果給白雪公主,白雪公主想把蘋果拿去鎮上與他人享用,但大家看到白雪公主拿著蘋果的景象都逃之夭夭,無奈的白雪公主問仙度瑞拉有沒有什麼好方法能證明這個蘋果是你做的,而且大家都可以知道呢~仙度瑞拉立刻想到數位簽章這個好方法!

  • 首先,仙度瑞拉運用公開金鑰密碼系統的機制,做了私鑰與公鑰各一把
    wJDZotR

  • 並將密文蘋果加入雜湊果汁機,得到了雜湊值
    9fWYbqe

  • 再家雜湊值使用仙度瑞拉私藏不外流的私鑰來加密,變成被加密的雜湊值 ( 數位簽章 )
    RIZcsEX

  • 傳送資料時除了傳送加密的資料本身外,還附上了公鑰與加密後的數位簽章
    mCKnKmZ

  • 最後白雪公主可將密文蘋果放入特定的雜湊果汁機,產生一組雜湊值。再將仙度瑞拉的數位簽章,用公鑰解密,並比對看看是否真是仙度瑞拉種的蘋果。
    而且因為公鑰可在外流傳,所以鎮上所有人都可以用這樣的方式,確認這是仙度瑞拉種的蘋果~
    Mzcx0v8


好的!感謝大家的閱讀,鼻子是很重要的我寧可沒主見,哈哈!掰掰明天見~


上一篇
【在廚房想30天的演算法】Day 28 資訊安全與演算法 : 訊息鑑別碼
下一篇
【在廚房想30天的演算法】Day 30 資訊安全與演算法 : 數位憑證
系列文
少女人妻在廚房裡想不通的演算法30

尚未有邦友留言

立即登入留言