発表者名 | タイトル | 要旨pdf |
---|---|---|
熊谷 大地 | 素数判定プログラムGMP-ECPPの高速化手法の検討 | 56 KB PDF |
古森 篤朗 | ハッシュ関数Luffaのハードウェア記述言語による実装とFPGAへの最適化 | 148 KB PDF |
RSA 暗号で使用する鍵は,素数判定を行うことで求めており,素数判定法は 情報通信において重要な研究分野である.本研究では楕円曲線法(Elliptic Curve Primality Proof: ECPP) を実装した素数判定プログラムGMP-ECPPについて, ライブラリのインストール方法による性能の違いの比較や,実装の改良を行う ことで,その高速化手法を検討し,最終的に約15%の高速化に成功した.
ハッシュ関数とは,可変長の入力データから固定長の値を生成する関数である.文書の署名,改竄の検出,タイムスタンプなどに広く用いられている.2007年,アメリカの国立標準技術研究所は次世代の標準ハッシュ関数SHA-3の募集を始めた.2010年9月現在,選考の第2ラウンドまでが終了しており,14の候補が残っている.この中からLuffaという関数をVHDLで実装し,Xilinx社のFPGA用に最適化した. まず,Luffaの製作者が提供しているC言語ソースコードを参考に,VHDLで実装した.さらにLuffa製作者が提供するOptimized版Cコードを参考にVHDLを改良し,論理合成を行ったところ,動作周波数は1%減少し,面積は7%減少した. 次に,Xilinx社から提供されるデバイス依存ライブラリにあるROM, RAM, LUT等のコンポーネントを使用し,モジュールごとに最適化を行った.Message Injectionモジュールに改良を施したところ,動作周波数は最大で10%減少し,面積は最大8%減少した.Sub Crumbモジュールでは,動作周波数は最大38%増加し,面積は最大1%増加した.Mix Wordでは,動作周波数は最大30%増加し,面積は最大10%減少した.Constant Generatorでは,動作周波数は最大8%減少し,面積は最大11%減少した.これらの改良を組み合わせた設計も評価したが,面積と動作周波数の向上は得られなかった.