[#44189] [ANN] Rails勉強会@東京 第24回のお知らせ — "MOROHASHI Kyosuke" <moronatural@...>
各位
1 message
2007/11/08
[#44190] Ruby/KAKASIのインストールに失敗する — <boku.charhan@...>
お忙しいところ失礼します、WINDOWS XPを使っているんですが
8 messages
2007/11/08
[#44197] Re: Ruby/KAKASIのインストールに失敗する
— Nobuyoshi Nakada <nobu@...>
2007/11/09
なかだです。
[#44192] [ANN]Ruby勉強会@新潟 第1回のお知らせ — "Masatoshi Itagaki" <masatoshi@...>
各地でRuby勉強会が開催されるようになっていますが、新潟でも開催しようと
6 messages
2007/11/08
[#44207] REXML で UTF16 のファイルが読み込めない — <rook401@...>
REXML で UTF16 のファイルを読み込もうとするとエラーになります。
5 messages
2007/11/12
[#44208] はじめまして — "Ohto, Yasunori" <Yasunori.Ohto@...>
はじめまして
8 messages
2007/11/12
[#44224] WinXPでのCursesプログラム — "Masao Ochi" <ochi@...>
初めて投稿させていただきます。越智と申します。
5 messages
2007/11/15
[#44237] Float を利用するRubyプログラム — SASADA Koichi <ko1@...>
ささだです.
16 messages
2007/11/17
[#44241] Re: Float を利用するRubyプログラム
— SASADA Koichi <ko1@...>
2007/11/19
ささだです.
[#44245] Re: Float を利用する Ruby プログラム
— NISHIMATSU Takeshi <t_nissie@...>
2007/11/19
西松と申します。
[#44246] 数学関数が足りない (Re: Re: Float を利用する Ruby プログラム)
— Nobuyoshi Nakada <nobu@...>
2007/11/19
なかだです。
[#44250] Re: 数学関数が足りない (Re: Re: Float を利用する Ruby プログラム)
— NISHIMATSU Takeshi <t_nissie@...>
2007/11/19
西松です。
[#44268] Complex#cproj patch for ruby-1.9/lib/complex.rb
— NISHIMATSU Takeshi <t_nissie@...>
2007/11/21
西松と申します。
[#44263] RUBY FORUM 2008のお知らせ — "TAISEI OKAZAKI" <okazaki@...>
度々のお知らせ失礼いたします。
4 messages
2007/11/21
[#44286] TmailをgemでWindowsにインストールしようとするとエラーになる — "garyo hosu" <garyohosu@...>
いつもお世話になっております。garyoです。
7 messages
2007/11/30
[#44287] Re: TmailをgemでWindowsにインストールしようとするとエラーになる
— rubikitch@...
2007/11/30
From: "garyo hosu" <garyohosu@gmail.com>
[ruby-list:44255] Re: Rubyで3DESを使用する際に鍵を複数指定する方法
From:
松風 敬 <shohu@...>
Date:
2007-11-20 16:12:25 UTC
List:
ruby-list #44255
いちのみや様
はじめまして、松風です。
ありがとうございます!!!!!!!!!
なかば返答をあきらめていたところです。
ソースまでつけてくださるとは。。。
しかも証明までしてくださって。本当に痛み入ります。
こちらのローカル環境でも問題なく動作することが確認できました。
いや、ほんと助かりました。
これでお客さんへの説明と、技術的な対応も無事できそうです。
ありがとうございました!
>いちのみやと申します。
>はじめまして。
>
>07/11/20 に 松風 敬<shohu@cablenet.ne.jp> さんは書きました:
>> Rubyで以下のような鍵A,Bを作成して,その鍵を使用して暗号化形式
>> "des-ede"でメッセージを暗号化、その暗号化したものをさらに複合
>> 化したいです。
>>
>> 鍵A作成 → 'keymessage1'をMD5でハッシュ化したもの
>> 鍵B作成 → 'keymessage2'をMD5でハッシュ化したもの
>>
>> ※あるメッセージを
>> 鍵Aで暗号化 → 鍵Bで複合化 → 鍵Aで暗号化
>> のように暗号化(des-ede)し、これを複合化するコード
>
>TripleDESは鍵を2個または3個使って
>DESの暗号化→復号→暗号化をするものですが、
>鍵を別々に設定するのではなく
>2 or 3個の鍵を連結したものを1つの鍵(128bit or 192bit)として
>設定するようになっています。
>
>なので、鍵Aと鍵Bを連結したものを鍵として設定すれば
>ご希望の処理が実現できると思います。
>
>
>require 'openssl'
>require 'md5'
>include OpenSSL::Cipher
>
>key1 = MD5.digest('keymessage1')[0..7]
>key2 = MD5.digest('keymessage2')[0..7]
>msg = "12345678"
>
>#
># TripleDES(des-ede)で暗号(key1+key2)
>#
>c1 = Cipher.new("des-ede")
>c1.key = key1 + key2
>c1.padding = 0
>msg1_e = c1.encrypt.update(msg) + c1.final
>
>#
># DESで暗号(key1)→復号(key2)→暗号(key1)
>#
>c21 = Cipher.new("des-ecb")
>c21.key = key1
>c21.padding = 0
>c22 = Cipher.new("des-ecb")
>c22.key = key2
>c22.padding = 0
># key1で暗号化
>msg2_e = c21.encrypt.update(msg) + c21.final
># key2で復号
>msg2_ed = c22.decrypt.update(msg2_e) + c22.final
># key1で暗号化
>msg2_ede = c21.encrypt.update(msg2_ed) + c21.final
>
># 暗号文を比較
>p msg1_e == msg2_ede # => true
>
># 暗号文が同じなので当然ですが、どっちでも復号できます
># msg2_edeをc1で復号
>msg1d = c1.decrypt.update(msg2_ede) + c1.final
>p msg1d # => "12345678"
># msg1_eをc21, c22で復号(復号(key1)→暗号(key2)→復号(key1))
>msg2d_ed = c21.decrypt.update(msg1_e) + c21.final
>msg2d_e = c22.encrypt.update(msg2d_ed) + c22.final
>msg2d = c21.decrypt.update(msg2d_e) + c21.final
>p msg2d # => "12345678"
>
>
>よく分かってませんがpadding = 0をしないと
>key2で復号するところで怒られます。
>"bad decrypt (OpenSSL::CipherError)"
>(PKCS?とかの関係らしいですが詳しく調べていません)
>
>
>--
>ICHINOMIYA Ryuji <ry.ichi@gmail.com>
>
>
>
>
>
>--
>No virus found in this incoming message.
>Checked by AVG Free Edition.
>Version: 7.5.503 / Virus Database: 269.16.0/1135 - Release Date: 2007/11/16
>22:58