プログラマのつれづれなるままにプログラマのつれづれなるままに音宮志久が思ったことなどをネタにします。プログラムネタ・数学ネタがメインです。昨日に引き続いていくつかハッシュ処理を追加コメントを残すとある処理を作っているのですが、そのために今度はハッシュの処理を追加する必要に迫られたわけですが・・・。問題だったのはSHA384とSHA224というハッシュアルゴリズムです。いっても、SHA384はSHA512の、SHA224はSHA256の縮退系のハッシュアルゴリズムちなみにSHA224は、私が確認している限りFIPS180-2にはそのアルゴリズムに関する記述がありませんでした。新しくなったFIPS180-3にはアルゴリズムが記述してありますので調べてみたい人は新しい方で確認するといいと思います。テストデータはFIPS180-2側にしかないのがちょっと残念だな~と思っていますが。どちらにしてもSHA512とSHA256がちゃんと組まれているならほとんど調べる必要はありません。いうのも、両方ともそれぞれを最終結果を縮退して(+初期ハッシュ値が別のものになって)いるだけなので、同じルーチンをそのまま使えます。C++のクラスで考えるなら、SHA384の処理はSHA512の処理を継承して初期化および最後のハッシュ取得の部分をちょっと書き換えるだけで実装が終わります。SHA224も同様にSHA256の処理を継承して初期化+最後のハッシュ取得を書き換えるだけで終了です。クラスでなくてもかなりの部分で処理が共通になるのでついでに組んでおくのもありだと思います。「デジタル署名処理で、あまりに長い署名(ハッシュ値)だと、公開鍵暗号のビット数を上回ることがあり、それを防ぐ必要がある」というものではないか?と思います。それは、この状態はすでに最低ビット数が1024bit必要なRSA暗号(RSA署名)では発生しませが、これが楕円曲線暗号を使うことになるとだいたい強度的に192bitあれば足りるのにハッシュ側が256bitだと結局ハッシュ側を切り捨てるなりする必要が出てきてしまうので、それをハッシュアルゴリズム側でどうにかするために作られたのでは?と思っています。ハッシュアルゴリズム」とくれば・・・。RSA暗号ができるように組んであったりします。ここまで暗号系処理のオンパレードも珍しいものだと思いますが・・・。コメントをキャンセルメールアドレスが公開されることはありません。気になるプログラムネタや数学ネタがあったら書き込みたいのだが残業が長すぎて眠気が全くとれず体調があまりよくない。過労などでぶっ倒れるかもしれない。あと、さすがに独り身が寂しいのでなんとかしたいと考えてはいるのだが...。関連記事はありません。アクセスカウンタアクセス数:スポンサーリンクモバイルバージョンに。