資訊與網路安全技術 第 五章 密碼系統實習環境 - OpneSSL  上一頁      下一頁

 

5-8 訊息摘要操作

內容:

訊息摘要演算法(或稱雜湊演算法)是將輸入訊息轉換成一份不可逆的訊息摘要(或稱雜湊值)。訊息摘要與原來訊息之間的相依性非常的高,原訊息只要稍微修改一點點,所產生的訊息摘要會變化很大。另一方面,很難找出兩份不同的訊息,可以計算出相同的訊息摘要,因此有稱為『數位指紋』。原訊息的長度可以任意大小,但產生訊息摘要的長度是固定的。訊息摘要演算法再配合公開鑰匙系統,則可作為訊息的數位簽章與驗證。

首先觀察 OpenSSL 提供有哪些訊息摘要演算法,如下:

H:\SecureLab\study>openssl/?

….

Message Digest commands (see the `dgst' command for more details)

md2            md4            md5            rmd160         sha

sha1

……

上述命令不僅包含訊息摘要功能,也具有公開鑰匙系統的數位簽章與驗證功能。

5-8-1 命令格式 - dgst

執行訊息摘要命令有兩種格式,一者配合 dgst 命令(即是 dgst md2 …);另一者僅輸入演算法命令(即是 md2 …),兩種方法皆可。吾人用 hash 表示各種演算法名稱,則命令格式如下:

openssl dgst [-hash ] [-c] [-d] [-hex] [-binary] [-out filename] [-sign filename]

[-passin arg] [-verify filename] [-prverify filename] [-signature filename] [file…]

  • -hash:演算法名稱,可以是 –md2-md4-md5-rmd160-sha –sha1

  • -c-d-hex-binary:訊息摘要輸出格式,可以是字元(c)、BIO 訊息(d)、十六進位碼(hex)或二進位碼(binary)等格式。

  • -sign filename:該檔案(filename)儲存預定簽署文件的私有鑰匙。該鑰匙可能是 RSA DSA 私有鑰匙,則相對應採用鑰匙的演算法處理。

  • -verify filename:該檔案(filename)存放預定驗證已簽署文件的公開鑰匙。驗證結果會顯示:"Verification OK" "Verification Failure"

  • -prverify filename:該檔案(filename)存放預定驗證已簽署文件的『私有鑰匙』。

  • -signature filename:該檔案儲存簽署文件後的簽署碼,提供可驗證功能。

  • file …:預定進行雜湊演算處理的訊息檔案,可提供一個檔案以上連結計算,但僅產生一個訊息摘要。多個檔案之間以『,』(Linux)或『;』(Windows)分隔。

5-8-2 操作範例

操作範例:吾人利用 md2 data.txt 檔案內資料編碼成訊息摘要,並由螢幕顯示出來,操作如下:

H:\SecureLab\study>type data.txt

012345678901234567890123456789

 

H:\SecureLab\study>openssl dgst -md2 data.txt

MD2(data.txt)= 358f9627407024c72c0512da058e4472

操作範例:吾人利用 sha1 data.txt 檔案內資料編碼成訊息摘要,並儲存於 data_md.txt 檔案,操作如下:

H:\SecureLab\study>openssl sha1 -out data_md.txt data.txt

 

H:\SecureLab\study>type data_md.txt

SHA1(data.txt)= 3b67544bfd2d6732fad2aabac32e692b1ae9de13

 

主講人:粘添壽博士

 

資訊與網路安全技術