- - PR -
DESの暗号化について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-11-15 13:15
いつもお世話になります。
今現在DESの暗号化について調べています。 その中で疑問に思ったことがあるので、 わかられる方がおられましたら教えて下さい。 ※DESの暗号化の結果はOSやプログラム言語によって 異なる? DESを調べている中で色々なプログラムのサンプル があり暗号化をためしてみたのですが、(javascript, vb.net,php等) どれも違う暗号結果が返ってきます。 例:str→aaaa キー:bbbb 暗号化後の文字列 サンプルA:cccc サンプルB:cbca サンプルC:ciek ※文字列は適当なものをセットしているので 実際のものとは異なります。 ちなみに暗号化の文字列を同じサンプルの 複合化機能を使えばきちんと複合できます。 宜しくお願いします。 | ||||
|
投稿日時: 2007-11-15 13:23
文字列の特徴によって、分かる人にはアルゴリズムについて心当たりがあるかもしれないので、「サンプル」では無くて実データの変換結果を書いてくれませんでしょうか? で、同じ「DES」でも、ブロックのサイズによって結果が違うし、モードによっても結果が違うし、ブロックに足りない部分の文字列をどうパディングするか?によっても結果が違うので、そこの所を調べてみるといいかもしれません。 (というか、実際に暗号化について勉強してみた方がよく分かるのかな。) | ||||
|
投稿日時: 2007-11-15 13:33
暗号化のアルゴリズムが同じでも、
文字列から文字列への暗号化の場合、 文字列の符号化方式によって結果は全然違います。 [ メッセージ編集済み 編集者: かつのり 編集日時 2007-11-15 13:34 ] | ||||
|
投稿日時: 2007-11-15 13:53
こんにちは
みためは同じ文字列でも同じバイト列であるとは限らないのでは? エンコード、改行コードの種類がそれぞれ等しいですか? あとは冬寂様がおっしゃるとおりパディングの実装の違いですかね。 蛇足ですが、複合化ではなく復号化ですよ。 | ||||
|
投稿日時: 2007-11-15 14:00
みなさんお返事ありがとうございます。
もう少し具体的に書きますと http://www.onicos.com/staff/iz/amuse/javascript/expert/ サイトにあるjavascriptで暗号化すると 文字:abcd キー:efg 暗号化文字:U9BRv6Oafjg= http://dobon.net/vb/dotnet/string/encryptstring.html サイトにあるvb.netで暗号化すると 文字:abcd キー:efg 暗号化文字:OYxUlvaY82Q= となります。(他にもありますが長くなるので省略します。) 前述でみなさんがかかれているように方式等によって 結果はまちまちということがわかりました。 今度は逆に暗号化した文字列を違うプログラムの方で 複合化すると複合化できずでたらめな文字列が帰って きました。 | ||||
|
投稿日時: 2007-11-15 14:04
それを言うなら「復号」(化は要らない)では…というのはありがちですか。
| ||||
|
投稿日時: 2007-11-15 14:40
そうですね。 あえて化をつけるなら、平文化ですかね? 暗号に対して明号という言葉があれば... | ||||
|
投稿日時: 2007-11-17 13:45
opensslで復号してみるとよいです。 私がやってみたところでは、上の両方とも元の平文である"abcd"に復号で きました。 暗号の方式が異なるのではないかという疑問をお持ちかもしれませんが、 復号してみると両方とも同じ方式であることがわかりました。 違いは方式ではなくて別のところにあります。 もちろんOSとか、プログラミング言語とかには依存しません。 あとは実際にやってみるとわかりますので、これ以上は書きません。では。 |
1