Ameba Ownd

アプリで簡単、無料ホームページ作成

OpenSSLを使った暗号化と復号化について

2018.10.11 10:56

前回の記事「AES-256bitの暗号化と復号化について」で、サンプルコードを使って、C言語でAES256の暗号化と復号化をやってみました。前回はどちらかといえば、AES-256bitの暗号化と復号化の仕組みについてでしたが、今回は、OpenSSLライブラリを使って同じく暗号化と復号化処理をしてみようと思います。

SSL とは何か?

SSL は、セキュア・ソケット・レイヤー (Secure Sockets Layer) の頭字語で、SSL はインターネットでのセキュアな通信のための標準であり、プロトコルにデータの暗号化を統合するものです。


デフォルトのopensslコマンドで暗号化と復号化

【コマンド例】

openssl -e aes-256-cbc -base64 -in input_file -out output_file -pass pass:0123456789ABCDEF0123456789ABCDEF

【option内容】

-e:暗号化エンコード(-d:復号化)

aes-256-cbc:暗号化エンコード形式(AES-256bitのCBC形式)

-base64:暗号化結果をURL(文字列のみで表現した)形式に変換

-in input_file:入力ファイル(変換前)

-out output_file:出力ファイル(変換後)

-pass pass:~:変換パスワード(※この値から鍵を生成する)

※AES-256bit処理のために必要な共通鍵と初期ベクトル値は以下のように自動生成される。

 暗号鍵 = MD5(password + salt)

 IV = MD5(暗号鍵 + password + salt) ※IV(Initial Vector)

※-pを追加することで、実際の暗号鍵、IV、Salt値を確認することが可能である。

※お試し→http://giraffe.topaz.ne.jp/crypttool/

 

IV値と暗号鍵によるopensslコマンドで暗号化と復号化

iv = "0123456789ABCDEF"

※16進= 30313233343536373839414243444546

key = "0123456789ABCDEF0123456789ABCDEF"

※16進= 3031323334353637383941424344454630313233343536373839414243444546

【コマンド例】

openssl aes-256-cbc -iv 30313233343536373839414243444546 -K 3031323334353637383941424344454630313233343536373839414243444546 -e -in input_file -out output_file

【option内容】

-e:暗号化エンコード(-d:復号化)

aes-256-cbc:暗号化エンコード形式(AES-256bitのCBC形式)

-in input_file:入力ファイル(変換前)

-out output_file:出力ファイル(変換後)

-iv 16進数:Initial Vector値(16Bytes)

-K 16進数:共通鍵(32Bytes)

OpenSSLライブラリで暗号化と復号化


※以下、参考サイト


記事作成:2018.10.11
記事更新:2018.10.11

この記事がより多くの方の目に触れるようブログランキングに参加しました。

応援よろしくお願いします。

↓↓↓↓↓↓↓↓↓↓↓↓↓