« AES暗号・複合ツール作ってみた | トップページ | SSE2(SIMD)による高速AES暗号・復号処理プログラム -続 »

2011/01/16

SHA-1, SHA-2 (224, 256)を計算するクラスを書いてみた。

「20110116_SHA.zip」をダウンロード


とりあえず、テストの段階だけど。

SHA-1
SHA-2 (SHA-224)
SHA-2 (SHA-256)

を計算するクラス。

●構造

SHA ・・・基底クラス
| 入力メッセージの拡張や、計算ルーチンの呼び出し。
| アプリケーション向けのインターフェイスは、ここで提供する。

├SHA1
| 内部状態の初期化
| SHA-1の計算ルーチン

└SHA256
 | 内部状態の初期化(SHA-256用)
 | SHA-2の計算ルーチン
 |
 └SHA254
   内部状態の初期化(SHA-224用)
   計算自体は、派生元のクラス"SHA256"のものを呼ぶ。


●関数一覧
init()  … 初期化
clac()  … 入力メッセージ1ブロック(64Byte)の計算
getHash() … ハッシュ値の取得

add()  … 入力メッセージ1ブロック(64Byte)追加
 内部ではcalc()を読んで、内部カウンターをインクリメントしている。

final() … 入力メッセージ最終ブロック(64Byte未満)
 内部では、メッセージ最終に情報を付加し、64Byteに拡張し、
 calc()の呼び出し。

CalcHash() … 簡易ハッシュ計算(入力は、メモリが許す限り。)
 内部では、
  init()
  add() ← 入力メッセージのブロック数だけ呼び出し
  final()
  getHash()
 を呼び出し、ハッシュ値を求める。
 入力は、メモリーに入れないといけないため、
 入力がGByte単位のデータだと、あまりよろしくない。

|

« AES暗号・複合ツール作ってみた | トップページ | SSE2(SIMD)による高速AES暗号・復号処理プログラム -続 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/36969/50602294

この記事へのトラックバック一覧です: SHA-1, SHA-2 (224, 256)を計算するクラスを書いてみた。:

« AES暗号・複合ツール作ってみた | トップページ | SSE2(SIMD)による高速AES暗号・復号処理プログラム -続 »