5-5 RSA 公鑰 系統操作
5-5-1 公鑰 系統命令彙集 同樣的,OpenSSL 也將許 RSA、DH 與 DSA 三種較常用的公開鑰匙系統,製作成相關命令,使用者可以直接操作。本書於第四章將會介紹到相關原理與製作技巧。吾人於 OpenSSL 交談環境中,可觀察到哪它提供有哪些命令,如下:
以上並非所有命令皆是,吾人將公開鑰匙密碼的相關命令歸納與說明如下:
上述命令大多僅針對產生公開鑰匙,以及相關鑰匙材料,至於如何利用公開鑰匙系統簽署與驗證文件,將於 0-9 節介紹。 5-5-2產生 RSA 鑰匙配對 – genrsa OpenSSL 提供有 genrsa、rsa、rsautl 等三種 RSA 演算法命令。其中 genrsa 主要功能是產生 RSA 公開鑰匙與私有鑰匙配對,命令格式如下:
操作範例。吾人欲產生一對 1024 位元鑰匙配對,並儲存於 rsaprivate.pem 檔案(包含公開與私有兩支鑰匙,一般稱為私有鑰匙檔案)內,其中私有鑰匙利用 DES 演算法加密,由鍵盤輸入通行碼作為加密鑰匙,操作如下:(Windows 系統下操作)
5-5-3 RSA 管理命令 - rsa 此命令是用來對已產生的鑰匙檔案管理,譬如重新設定通行碼、加密演算法、取出公開鑰匙或進行檔案格式轉換等等,命令格式如下:
範例操作。之前吾人利用 genrsa 產生一個鑰匙檔案,接著再利用 rsa 管理命令,將他轉換成一般文件格式(Text,rsaprivate.txt),觀察其內容如何,操作如下:
接著,再觀察 rsaprivate.txt 檔案內容,如下:
上述參數可歸納如下:(請參考第四章說明)
也可以由 rsaprivate.pem 檔案內取出公開鑰匙,並儲存於 rsapublic.pem 檔案,假設不直接輸入通行碼,執行後螢幕會出現要求輸入通行碼,操作如下:(可利用前範例方法,觀察公開鑰匙檔案的內容如何。)
5-5-4 RSA 操作命令 – rsautl 產生了 RSA 鑰匙配對之後,吾人就可以利用 rsautl 來針對文件加密、簽署或驗證的工作。基本上,rsautl 並沒有提供雜湊演算法功能,對於大量資料需要其他演算法配合才行,否則僅能處理資料長度低於鑰匙長度的文件。命令格式如下:
5-5-5 RSA 加密與簽章範例 假設利用之前範例產生了 rasprivate.pem 與 rsapublic.pem 兩支 RSA 配對鑰匙,接著吾人利用公開鑰匙向明文 data.txt 加密後,得到 cipher.txt。再利用私有鑰匙解密得到 plain.txt,接著比較 data.txt 與 plain.txt 兩檔案內容是否相同,如此可驗證 RSA 演算法的操作是否正確。
吾人再利用 Linux 系統,執行一個 RSA 簽署資料範例。首先 rsa 命令利用私有鑰匙(rsaprivate.pem)簽署明文檔案 data.txt,OpenSSL 會將簽署碼與原明文輸出到指定檔案上(sign.txt)。假設 sign.txt 傳遞給對方之後,對方欲證明該檔案並非他人偽造,則利用發送端的公開鑰匙(rsapublic.pem),驗證簽署檔案,如果成功的話,則將原明文內容寫入 plain.txt 檔案內。操作如下:
|
翻轉工作室:粘添壽
資訊與網路安全技術
翻轉電子書系列:
|