Skip to main content
QUICK REVIEW

[論文レビュー] Instruction sequence expressions for the secure hash algorithm SHA-256

J.A. Bergstra, C.A. Middelburg|arXiv (Cornell University)|Aug 1, 2013
Cryptographic Implementations and Security参考文献 19被引用数 10
ひとこと要約

本論文は、プログラム代数(PGA)を用いた数学的に明確な、命令列に基づくSHA-256の実装を提示している。ハッシュ関数は、ブールレジスタ演算、ジャンプ、終了から成る有限で一回読み込みの命令列としてモデル化されている。主な貢献は、任意の長さのビット列に制限されたSHA-256の均一な代数的記述であり、N個の32ビット単位のメッセージに対して、729,464·N + 1,025本の命令列サイズが証明されている。

ABSTRACT

The secure hash function SHA-256 is a function on bit strings. This means that its restriction to the bit strings of any given length can be computed by a finite instruction sequence that contains only instructions to set and get the content of Boolean registers, forward jump instructions, and a termination instruction. We describe such instruction sequences for the restrictions to bit strings of the different possible lengths by means of uniform terms from an algebraic theory.

研究の動機と目的

  • NIST標準におけるSHA-256の疑似コード記述の数学的に明確な形式的代替手段を提供すること。
  • 固定長のビット列に制限されたSHA-256の計算を、レジスタ操作、前方ジャンプ、終了の基本的命令列プリミティブのみを用いてモデル化すること。
  • SHA-256のような複雑な暗号的プリミティブをプログラム代数(PGA)の枠組み内で表現する可能性とスケーラビリティを示すこと。
  • 命令列理論を用いて、暗号的アルゴリズムの計算複雑度とアルゴリズム的同等性を分析する基盤を確立すること。

提案手法

  • プログラム代数(PGA)を用いて、レジスタ値の設定/取得、前方ジャンプ、終了の基本的命令のみで命令列を定義すること。
  • 32ビットワードを32個のブールレジスタの列として符号化し、代数的演算を用いてビットレベルの操作を可能にすること。
  • パラメータ化された命令列を用いて、32ビットワードにおける基本演算(例:モジュロ加算、ビットシフト、ローテート、XOR)を定義すること。
  • メッセージ拡張と圧縮関数の各段階に対してパラメータ化された命令列を組み合わせることで、完全なSHA-256計算を構築すること。
  • 任意の入力長Nに対して一様な代数的項を用いて命令列を記述することで、モularityとスケーラビリティを保証すること。
  • NIST標準のアルゴリズム的記述と正確に一致する命令列構造により、正しさを検証すること。

実験結果

リサーチクエスチョン

  • RQ1SHA-256ハッシュ関数は、プログラム代数の枠組み内で、基本的命令列操作のみを用いて形式的かつ明確に記述可能か?
  • RQ2任意の長さNの入力に対してSHA-256を計算するために必要な正確な命令列サイズは何か?
  • RQ3このモデルにおける命令列サイズと計算時間の関係は何か?その関係は多項式的か?
  • RQ4PGAの代数的構造は、SHA-256のような複雑な暗号的プリミティブをスケーラブルかつ検証可能に形式的に記述できるか?
  • RQ5この形式化により、暗号的アルゴリズムにおけるアルゴリズム的複雑度と同等性の新たな分析がどの程度可能になるか?

主な発見

  • N個の32ビットワードに制限されたSHA-256の命令列は、合計で729,464·N + 1,025本の命令から構成され、アルゴリズムの各段階の正確な構造的分解から導出されたものである。
  • 本モデルは、レジスタの設定・テスト、前方ジャンプ、終了の基本的演算のみを用いており、再帰や複雑な制御構造を一切必要としない、一回読み込みで有限な命令列によるSHA-256の計算が可能であることを証明している。
  • 使用する補助レジスタの数は常に2,945個であり、入力長に依存しない。これは効率的な状態管理を示している。
  • 必要な最大入力レジスタ数は2^64であり、メッセージ長の理論的上限(最大2^64 - 1ビット)を反映している。
  • 出力レジスタ数は固定の256個であり、256ビットのハッシュ出力に対応している。
  • 結果から、このモデルにおける命令列サイズと計算時間の関係は多項式的であると考えられ、サイズを暗号的アルゴリズムの複雑度測定指標として用いることが妥当であると示唆している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。