Openssl enc復号化
紹介する
Enc-対称暗号化ルーチンは、対称鍵を用いてデータを復号化し、速度が速く、大量のデータを処理できることを特徴とする.アルゴリズムにはストリームアルゴリズムとパケット暗号化アルゴリズムがあり、ストリームアルゴリズムはバイト単位で暗号化され、データ古典アルゴリズムであるが、解読されやすいため、現在はあまり使われていない.パケット暗号化アルゴリズムは、データを一定サイズのグループに分けてグループごとに暗号化するものであり、よく知られているのがDES 3である.パケットアルゴリズムには、ECB、CBC、CFB、OFB、CTRなどの動作モードもあり、デフォルトではCBC動作モードが選択されている.
構文
openssl enc -ciphername[-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]
Encプライマリコマンドは、暗号化アルゴリズムの名前を直接呼び出すこともできますが、たとえば、次のようにします.
しかし、この呼び出し形式は、ハードウェアエンジンを必要とするアルゴリズムに対して正常に動作しない(アルゴリズムは、ハードウェアによって完了することができる)ため、使用は推奨されない.
-in/-out filename 復号するファイルを入力し、復号したファイルを出力します.
-pass arg
-passは、いくつかのパスワードを入力する方法を提供します.従来は-kオプションを使用してパスワードを入力しています.(環境変数、ファイル記述子については、関連文献を参照)
-salt 塩を加えます.これはデフォルトのオプションです.
-nosaltは、互換性を考慮しない限り、新しいプログラムでこのオプションを使用することを明確にオフにしています.これは不思議な選択肢で、塩を加えると、同じ明文で異なる密文を得ることができます.デフォルトでは、塩の値はランダムに生成され、使用できます.
-Sオプションは塩の値を明確に指定します.
塩の値があれば、同じ明文で異なる密文を生成することができますが、それは解読できますか?もちろんいいです.密文には塩の値が含まれています.例:
saltとa.des 3 saltのa 254 906 c a 471 c 1 d 4は同じであることに注意してください.私は以前POCOで暗号化プログラムを書いて、1つのファイルを暗号化して、それからopensslでその同じファイルを暗号化して、結局暗号化した後のファイルは異なって、もとは塩の値がおかしいです.塩を加えると、調味料を入れるので、結果が違います.
塩値(salt)は秘密にする必要はありません.なぜ、「応用暗号学」を見てみましょう.
-e/-d encrypt/decrypt復号化.デフォルトは暗号化です.-dは復号化であることを明確に指定します.
-a 暗号化されたデータをbase 64で符号化したり、復号化する前にbase 64で復号したりします.
-base 64と
-aオプションは同じです.
-A -aオプションを指定すると、base 64処理は各行で行われます.
-k/ -kfile -k,従来のパスワード入力方式,−k 123は−pass pass:123に相当する.kfile p.txtは-pass file:p.txtに相当する.
-K key 本当に使用しているkeyを暗号化します.これは-kと-passと何の違いがありますか?実は私たちが入力したパスワードは暗号化の時に使う鍵ではありません.パケット暗号化アルゴリズムにとって、鍵は固定されていて、64/128/256などがあります.文献にもよく見られますが、鍵は何ビットですか.私たちが入力したパスワードは、暗号化アルゴリズムが起動する前に演算され、暗号化に使用されるkeyを固定長にし、暗号化します.オプションでkeyを手動で指定できます.keyのフォーマットは16進数で、アルゴリズムによってkeyの長さも異なります.
-iv IV IVは初期化ベクトルであり,フォーマットは16進数である.パケット暗号化アルゴリズムでは,第1のデータセットを暗号化する際に,明文の統計的特性を隠した初期化ベクトルで処理することができる.次の仕事モードに参加します.
-p/-P printはkeyとivの値を印刷します.-Pはkeyとivの値のみを印刷し,復号化演算を行わない.参照-salt
アルゴリズム#アルゴリズム#
上記のdes 3のほかにopensslはそれらのアルゴリズムを提供していますか?
ここは公式文書です.整理しました.
ECBは図のように最も簡単です
CBCは図のように最も広く応用されている.
第1グループのデータを暗号化する際にはIVを用い,各グループのデータに暗号化を加える前に前グループの暗号化後のデータと異和を行い,セキュリティを向上させた.異なるIVは異なる密文を生み出すことができ(これは異なるsaltとは異なる密文を生み出すことができ、矛盾しないべきで、本人菜鳥^^)、このように明文の統計的特徴は密文の中で消散する.IVは秘密にする必要はありません.
Enc-対称暗号化ルーチンは、対称鍵を用いてデータを復号化し、速度が速く、大量のデータを処理できることを特徴とする.アルゴリズムにはストリームアルゴリズムとパケット暗号化アルゴリズムがあり、ストリームアルゴリズムはバイト単位で暗号化され、データ古典アルゴリズムであるが、解読されやすいため、現在はあまり使われていない.パケット暗号化アルゴリズムは、データを一定サイズのグループに分けてグループごとに暗号化するものであり、よく知られているのがDES 3である.パケットアルゴリズムには、ECB、CBC、CFB、OFB、CTRなどの動作モードもあり、デフォルトではCBC動作モードが選択されている.
構文
openssl enc -ciphername[-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]
Encプライマリコマンドは、暗号化アルゴリズムの名前を直接呼び出すこともできますが、たとえば、次のようにします.
openssl des3 -pass pass:"123" -in a.txt -out a.txt.des3
しかし、この呼び出し形式は、ハードウェアエンジンを必要とするアルゴリズムに対して正常に動作しない(アルゴリズムは、ハードウェアによって完了することができる)ため、使用は推奨されない.
-in/-out filename 復号するファイルを入力し、復号したファイルを出力します.
-pass arg
-passは、いくつかのパスワードを入力する方法を提供します.従来は-kオプションを使用してパスワードを入力しています.(環境変数、ファイル記述子については、関連文献を参照)
-pass pass:"123" # 123
-pass pass:123 # 123
-pass evn:VAR # VAR
-pass file:p.txt # p.txt , , DOS ^M 。
-pass fd:3 # 3
-pass stdin #
-salt 塩を加えます.これはデフォルトのオプションです.
-nosaltは、互換性を考慮しない限り、新しいプログラムでこのオプションを使用することを明確にオフにしています.これは不思議な選択肢で、塩を加えると、同じ明文で異なる密文を得ることができます.デフォルトでは、塩の値はランダムに生成され、使用できます.
-Sオプションは塩の値を明確に指定します.
E:\OpenSSL\foo>openssl enc -P -des3 -pass pass:123 -in a.txt
salt=669E2AB46DA79FA0
key=EFDB3D1EF18840FF7961E5346FCED81CD34D89286A106F71
iv =2FBE944B72F3CA59
E:\OpenSSL\foo>openssl enc -P -des3 -pass pass:123 -in a.txt
salt=2D89EA80CDE7700E
key=825A74419BADD6A82D6DD9ECD9404397EB5AFC020A75D511
iv =152185CA47D212A0
塩の値があれば、同じ明文で異なる密文を生成することができますが、それは解読できますか?もちろんいいです.密文には塩の値が含まれています.例:
E:\OpenSSL\foo>openssl enc -p -des3 -pass pass:123 -in a.txt -out a.des3salt
salt=A254906CA471C1D4
key=15A12DB86A8A09ABB3C59C1712D865447D96AD1BC940CA56
iv =264E495D7649F9F8
E:\OpenSSL\foo>xxd a.des3salt
0000000: 5361 6c74 6564 5f5f a254 906c a471 c1d4 Salted__.T.l.q..
0000010: 952e 1995 b60d 1813 ........
saltとa.des 3 saltのa 254 906 c a 471 c 1 d 4は同じであることに注意してください.私は以前POCOで暗号化プログラムを書いて、1つのファイルを暗号化して、それからopensslでその同じファイルを暗号化して、結局暗号化した後のファイルは異なって、もとは塩の値がおかしいです.塩を加えると、調味料を入れるので、結果が違います.
塩値(salt)は秘密にする必要はありません.なぜ、「応用暗号学」を見てみましょう.
-e/-d encrypt/decrypt復号化.デフォルトは暗号化です.-dは復号化であることを明確に指定します.
E:\OpenSSL\foo>openssl enc -d -des3 -pass pass:123 -in a.des3salt -out a.dec
E:\OpenSSL\foo>diff a.txt a.dec
E:\OpenSSL\foo>
-a 暗号化されたデータをbase 64で符号化したり、復号化する前にbase 64で復号したりします.
-base 64と
-aオプションは同じです.
E:\OpenSSL\foo>openssl enc -des3 -a -k 123 -in a.txt -out a.des3base64
E:\OpenSSL\foo>openssl enc -des3 -d -a -k 123 -in a.des3base64 -out b.txt
E:\OpenSSL\foo>diff a.txt b.txt
-A -aオプションを指定すると、base 64処理は各行で行われます.
-k/ -kfile -k,従来のパスワード入力方式,−k 123は−pass pass:123に相当する.kfile p.txtは-pass file:p.txtに相当する.
-K key 本当に使用しているkeyを暗号化します.これは-kと-passと何の違いがありますか?実は私たちが入力したパスワードは暗号化の時に使う鍵ではありません.パケット暗号化アルゴリズムにとって、鍵は固定されていて、64/128/256などがあります.文献にもよく見られますが、鍵は何ビットですか.私たちが入力したパスワードは、暗号化アルゴリズムが起動する前に演算され、暗号化に使用されるkeyを固定長にし、暗号化します.オプションでkeyを手動で指定できます.keyのフォーマットは16進数で、アルゴリズムによってkeyの長さも異なります.
-iv IV IVは初期化ベクトルであり,フォーマットは16進数である.パケット暗号化アルゴリズムでは,第1のデータセットを暗号化する際に,明文の統計的特性を隠した初期化ベクトルで処理することができる.次の仕事モードに参加します.
-p/-P printはkeyとivの値を印刷します.-Pはkeyとivの値のみを印刷し,復号化演算を行わない.参照-salt
アルゴリズム#アルゴリズム#
上記のdes 3のほかにopensslはそれらのアルゴリズムを提供していますか?
E:\OpenSSL\foo>openssl enc -help
ここは公式文書です.整理しました.
base64 Base 64
bf-cbc Blowfish in CBC mode
bf Alias for bf-cbc
bf-cfb Blowfish in CFB mode
bf-ecb Blowfish in ECB mode
bf-ofb Blowfish in OFB mode
cast-cbc CAST in CBC mode
cast Alias for cast-cbc
cast5-cbc CAST5 in CBC mode
cast5-cfb CAST5 in CFB mode
cast5-ecb CAST5 in ECB mode
cast5-ofb CAST5 in OFB mode
des-cbc DES in CBC mode
des Alias for des-cbc
des-cfb DES in CBC mode
des-ofb DES in OFB mode
des-ecb DES in ECB mode
des-ede-cbc Two key triple DES EDE in CBC mode
des-ede Two key triple DES EDE in ECB mode
des-ede-cfb Two key triple DES EDE in CFB mode
des-ede-ofb Two key triple DES EDE in OFB mode
des-ede3-cbc Three key triple DES EDE in CBC mode
des-ede3 Three key triple DES EDE in ECB mode
des3 Alias for des-ede3-cbc
des-ede3-cfb Three key triple DES EDE CFB mode
des-ede3-ofb Three key triple DES EDE in OFB mode
desx DESX algorithm.
gost89 GOST 28147-89 in CFB mode (provided by ccgost engine)
gost89-cnt `GOST 28147-89 in CNT mode (provided by ccgost engine)
idea-cbc IDEA algorithm in CBC mode
idea same as idea-cbc
idea-cfb IDEA in CFB mode
idea-ecb IDEA in ECB mode
idea-ofb IDEA in OFB mode
rc2-cbc 128 bit RC2 in CBC mode
rc2 Alias for rc2-cbc
rc2-cfb 128 bit RC2 in CFB mode
rc2-ecb 128 bit RC2 in ECB mode
rc2-ofb 128 bit RC2 in OFB mode
rc2-64-cbc 64 bit RC2 in CBC mode
rc2-40-cbc 40 bit RC2 in CBC mode
rc4 128 bit RC4
rc4-64 64 bit RC4
rc4-40 40 bit RC4
rc5-cbc RC5 cipher in CBC mode
rc5 Alias for rc5-cbc
rc5-cfb RC5 cipher in CFB mode
rc5-ecb RC5 cipher in ECB mode
rc5-ofb RC5 cipher in OFB mode
aes-[128|192|256]-cbc 128/192/256 bit AES in CBC mode
aes-[128|192|256] Alias for aes-[128|192|256]-cbc
aes-[128|192|256]-cfb 128/192/256 bit AES in 128 bit CFB mode
aes-[128|192|256]-cfb1 128/192/256 bit AES in 1 bit CFB mode
aes-[128|192|256]-cfb8 128/192/256 bit AES in 8 bit CFB mode
aes-[128|192|256]-ecb 128/192/256 bit AES in ECB mode
aes-[128|192|256]-ofb 128/192/256 bit AES in OFB mode
上記のecb,cbc,ofb,cfbなどに注意してください.これらはパケットアルゴリズムの動作モードであり、デフォルトはcbcです.ECBは図のように最も簡単です
CBCは図のように最も広く応用されている.
第1グループのデータを暗号化する際にはIVを用い,各グループのデータに暗号化を加える前に前グループの暗号化後のデータと異和を行い,セキュリティを向上させた.異なるIVは異なる密文を生み出すことができ(これは異なるsaltとは異なる密文を生み出すことができ、矛盾しないべきで、本人菜鳥^^)、このように明文の統計的特徴は密文の中で消散する.IVは秘密にする必要はありません.