我們看看Alice有沒有順利傳遞訊息吧!
發生什麼事了…為什麼會這樣?
因此,為了保障資料不被竄改,保有資料的完整性,「數位簽章」 在非對稱式加密中相當重要。
在數位簽章的製作過程中,包含了雜湊演算法的應用,我們先了解何謂雜湊演算法 。
1. 先備概念:雜湊演算法的差異、MD5演算法的運行過程
2. 訊息傳遞流程:製作數位簽章 → 訊息加解密

請輸入不定長度之訊息文字,從操作中試著回答以下問題:
【正向快速】
➢ 觀察不同的演算法,雜湊值產生的速度差異?
➢ 觀察不同的演算法,雜湊值產生的速度差異?
【參數敏感】
➢ 只要變動一個字,雜湊值是否相同?
➢ 若再次重新輸入,雜湊值是否相同?
➢ 比較不同雜湊演算法的雜湊值長度差異。
➢ 只要變動一個字,雜湊值是否相同?
➢ 若再次重新輸入,雜湊值是否相同?
➢ 比較不同雜湊演算法的雜湊值長度差異。
訊息文字
*輸入中英文皆可,為維護平台效能,字數限制為150字。
雜湊演算法
雜湊值
小結:雜湊函式可以快速計算訊息的雜湊值,使得在訊息傳輸時,可以迅速計算雜湊值並進行比對,確保訊息的完整性。
若訊息被篡改(即使只改變一個字元),其雜湊值會發生極大變化,使得篡改行為能夠被立即偵測。
若訊息被篡改(即使只改變一個字元),其雜湊值會發生極大變化,使得篡改行為能夠被立即偵測。
了解雜湊演算法 正向快速、參數敏感 的特性之後,讓我們藉由演算法的運行過程,觀察逆向困難、避免碰撞 的特性吧!
訊息文字:可以嘗試輸入超過512 bits,觀察長字串如何透過MD5演算法產生雜湊值。
*為簡要展示運行過程,僅限輸入大小寫英文字母,可包含空白,總字數限為10~100字元。
*若需更改輸入,請按F5重新整理頁面後再輸入,才可按下送出。
1. 先備概念:雜湊演算法的差異、MD5演算法的運行過程
2. 訊息傳遞流程:製作數位簽章 → 訊息加解密
訊息文字:可以嘗試輸入超過512 bits,觀察長字串如何透過MD5演算法產生雜湊值。
*為簡要展示運行過程,僅限輸入大小寫英文字母,可包含空白,總字數限為10~100字元。
*若需更改輸入,請按F5重新整理頁面後再輸入,才可按下送出。

共計:0個字元,0bits (一個字元 8bits)
字元 | |||||||||
ASCII Code | |||||||||
二進位 |
操作區
目前尚無訊息,請於上方先輸入訊息文字。
1. 一個答案格只能放置一個答案。
2. 若需重新擺放答案,請將答案放回拖曳區。
我們用麵包機比喻MD5演算法製作雜湊值的過程。
步驟一:準備材料,將下方A、B、C、D四個初始向量及所有512bits區段的訊息拖曳放入至方框中。
步驟一:準備材料,將下方A、B、C、D四個初始向量及所有512bits區段的訊息拖曳放入至方框中。
![]() |
![]() |
![]() |
![]() |
目前尚無訊息,請於上方先輸入訊息文字。
|
|
拖曳區
操作注意事項:1. 一個答案格只能放置一個答案。
2. 若需重新擺放答案,請將答案放回拖曳區。
初始向量 (酵母) | 訊息 (麵粉) | ||||
![]() |
![]() |
||||
概念說明區
MD5 演算法以 512 bits為區段。
您目前輸入的訊息長度為 bits ,未滿512bits,因此採用填充方法,在字元末端添加一個“1”,然後添加足夠多的“0”,直到長度達到512位元。
完成後,目前已表示為 1 個 512 bits 區段:
您目前輸入的訊息長度為 bits ,未滿512bits,因此採用填充方法,在字元末端添加一個“1”,然後添加足夠多的“0”,直到長度達到512位元。
完成後,目前已表示為 1 個 512 bits 區段:


Alice現在準備製作數位簽章,以保障訊息來源的安全性。
假設雙方各自擁有公鑰及私鑰,請選擇其中一則明文,產生其雜湊值之後,將合適的金鑰拖曳至方框中,以利用RSA演算法加密為"數位簽章"。
假設雙方各自擁有公鑰及私鑰,請選擇其中一則明文,產生其雜湊值之後,將合適的金鑰拖曳至方框中,以利用RSA演算法加密為"數位簽章"。
1. 先備概念:雜湊演算法的差異、MD5演算法的運行過程
2. 訊息傳遞流程:製作數位簽章 → 訊息加解密
備註:公鑰後方的雲朵底圖,表示公鑰於網際網路中的公開性質。 | |||
Alice公鑰
![]() |
Alice私鑰
![]() |
Bob公鑰
![]() |
Bob私鑰
![]() |
拖曳區
操作注意事項:1. 一個答案格只能放置一個答案。
2. 若需要重新擺放答案,請將答案放回拖曳區中。

製作明文之數位簽章
第一步、產生明文的雜湊值
(此處的雜湊方法為MD5雜湊演算法,若考量安全性則應使用SHA-256雜湊演算法)
(此處的雜湊方法為MD5雜湊演算法,若考量安全性則應使用SHA-256雜湊演算法)
明文 


雜湊值 1
*產生明文的雜湊值後,若想重新選擇明文,請按F5重新整理頁面。

第二步、使用自己的私鑰對雜湊值進行加密
(此處的加密方法為RSA演算法)
(此處的加密方法為RSA演算法)
雜湊值 1


數位簽章

準備好該訊息的數位簽章後,一如非對稱式加密的基本運作般,傳遞訊息。
1. 先備概念:雜湊演算法的差異、MD5演算法的運行過程
2. 訊息傳遞流程:製作數位簽章 → 訊息加解密
