AES暗号化アルゴリズムのハードウェア設計方法の簡単な分析

AES暗号化アルゴリズムのハードウェア設計方法の簡単な分析

[[356976]]

情報セキュリティの分野では、米国は集積回路IPコアの分野で常に独占的地位を占めてきた[1-6]。近年、米国は中国への「供給削減」を強化しており、「ZTE」や「Huawei」事件など、米国の対中覇権行為により、チップなどのプロセッサに関連する情報セキュリティの分野が再び世界に注目されるようになった[7]。

現在、セキュリティ分野では、暗号化アルゴリズム[14-17]は主にソフトウェアとハ​​ードウェアを通じて設計および実装されています。ソフトウェアは機器によって制限されやすく、比較的不安定であるため、データ伝送の品質が低下しやすいです。専用チップを設計して暗号化アルゴリズムを実装することは、現在の情報セキュリティ分野の主流です。この方法は組み込みが容易で、複雑な機能を完成させるのに適しており、IPコアの再利用性が強く、信頼性が高く、暗号化率が高く、全体的なコストが低いという利点があります[7]。

本論文では、主にFPGA(フィールドプログラマブルゲートアレイ)に基づくAES(Advanced Encryption Standard)アルゴリズムのパイプライン構造設計を紹介し、その機能検証と性能評価を完了する[7-8]。

1 はじめに

1.1 研究の背景と意義

1977年、米国国立標準局はDES[15](データ暗号化標準)をFIPS(連邦情報処理標準)に指定し、その後DESはさまざまな業界に適用されました。パスワードクラッキング技術[16]の継続的な発展に伴い、DESのセキュリティとアプリケーションの見通しは大きな課題に直面しています。研究者は、DES暗号化と復号化がもはや安全で信頼できるアルゴリズムではないことを証明しました。そのため、より安全でオープンで無料の暗号化アルゴリズムであるAES[14,30](Advanced Encryption)を設計し、さまざまな情報機密分野に適用できるようにするという国際的な要求が広がっています。 1997 年、NIST (米国国立標準技術研究所) は世界中から新世代の暗号化アルゴリズムを募集しました。アルゴリズムは次の条件を満たす必要があります (図 1.1 を参照)。

図1.1 新世代の暗号化アルゴリズムが満たさなければならない条件

2000 年、ベルギーの Joan Daemaen 氏と Vincent Rijmen 氏が Square アルゴリズムに基づいて設計した Rijndael アルゴリズムが最終選考を通過しました。 2001年、NISTはRijndaelが設計したAESアルゴリズムをFIPS PUB 197[14]で公開しました。翌年、AESは米国連邦政府の次世代ブロック暗号化標準となりました。2006年以来、AESはさまざまな業界で広く使用されています[7]。このアルゴリズムには次の利点があります。

1) さまざまな環境(フィードバックの有無にかかわらず)でのハードウェアおよびソフトウェア実装の優れたパフォーマンス。

2) キー拡張時間が短縮されます。

3) このアルゴリズムはごく少量のメモリで実装できるため、メモリが少ない環境での使用に適しています。

4) 強力な反攻撃能力。

5) 内部ループ構造は、命令レベルの並列プロセッサのパフォーマンスを向上させるのに役立ちます。

1.2 研究の意義

図1.2 AES暗号化アルゴリズムの応用分野

図1.2に示すように、今日のインターネットの急速な発展と、WiFiやBluetoothのコストと消費電力の段階的な低下により、スマートウェアラブルデバイスやスマートホームが非常に普及し、消費者はオンラインネットワーク決済、電子商取引、通信などの日常的な取引をますます頻繁に行うようになり、さまざまなコンピュータネットワークやモバイル端末などの通信デバイスを通じて大量の重要なデータが送信されるようになります。しかし、インターネットは効率性と利便性をもたらす一方で、個人情報のセキュリティ問題も深刻化しています。個人情報が盗まれたり犯罪者に攻撃されたりしないように保護するためには、ソフトウェアレベルでのセキュリティ防御だけでなく、ハードウェアレベルでのセキュリティ防御にも注意を払う必要があります。したがって、プロセッサハードウェアの暗号化速度とセキュリティを向上させることは、プロセッサハードウェアセキュリティに不可欠な部分です[7、23-28]。

CPUプロセッサなどのハードウェア分野では、カリフォルニア大学バークレー校によるRISC-V[7,14]命令セットのオープンソース化を機に、カリフォルニア大学バークレー校のBOOM[18-19]、ケンブリッジ大学のLowRISC[20]、スイス連邦工科大学とイタリアのボローニャ大学のPULPino[21]、ロシアのRISC-V VHDL[22]など、命令セットを縮小して敷居を下げたCPU設計が、5G高速通信、AI(人工知能)、産業用ロボット、IoT、インテリジェントオートメーション、さらには国防の分野で広く利用されるようになることは必至である。同時に、これらのプロセッサの情報セキュリティ問題がユーザーの注目を集めることは必至である[7]。

2AESアルゴリズムの原理

AES 暗号化アルゴリズム (Rijndael アルゴリズムとも呼ばれる) は対称暗号化システムを使用し、キーの長さは 128 ビット/192 ビット/256 ビットの 3 種類に分かれており、AES-128/AES-192/AES-256 と略されます (表 2.1 を参照)。このアルゴリズムはSP構造(置換/順列)を採用しており、鍵長は128ビット、192ビット、256ビットの3つのモードに分かれています。暗号化プロセスのラウンド関数は4つの層(バイト置換、行シフト、列混乱、ラウンドキー追加)で構成されています。Sボックスは有限体上のGF()の逆乗演算を使用しており、優れた線形偏差と微分均一性を実現しています[7,14]。

この章では、AES アルゴリズムに関係するパラメータ、暗号化プロセス、キー拡張などについて簡単に説明します。

表2.1 3つのAESモードに対応する鍵長、ブロック長、反復回数

2.1 AESアルゴリズムのパラメータ、シンボル、関数の紹介

SubBytes(): 状態行列内の各バイトに対して独立して動作する非線形バイト置換テーブル (S ボックス) を使用して、状態行列に対して暗号変換を実行します。

ShiftRow(): 状態行列の最後の 3 行を異なるオフセットで循環的にシフトすることにより、状態行列の暗号シフトを実行します。

Mixcolumns(): 列の混合は、暗号化プロセスにおける変換ステップであり、状態マトリックスのすべての列を取得し、それらのデータを(互いに独立して)混合して新しい列を生成します。

AddRoundKey(): ラウンドキーの追加。AES 暗号化/復号化プロセス中に、ラウンドデータとラウンドキーを XOR 演算することによって状態行列が構築されます。状態行列はラウンドキーの長さに等しくなります。

XOR: 排他的論理和演算。演算子は[[356978]]です。

InvsubBytes(): 復号化プロセス中の変換、つまり SubBytes() の逆変換。

InvShiftRows(): 復号化プロセス中の変換、つまり ShirtRows() の逆変換。

InvMixColumns(): 復号化中の変換、つまり MixColumns() の逆変換。

RotWord(): ラウンド キー拡張中に使用される関数で、4 バイトのワードを受け入れて循環置換を実行します。

Rcon [ ]: 丸め定数、Rcon[j]はワード、jは丸め数、表2.2に示すとおり: [7,14]

表2.2 丸め定数Rcon[j]

2.2 暗号化プロセス

AES 暗号化/復号化プロセスを、「AES-128」モードを例にとり、図 2.1 に示します。

暗号化処理におけるラウンド 1 から 9 の操作はまったく同じです。ラウンド関数は、バイト置換、行シフト、列混合、ラウンド キー追加の 4 つのステップで構成されます。10 番目のラウンドには列混合ステップはありません。ここで関数はキースケジューリングの関数である[7]。

図2.1 AES暗号化/復号化フローチャート

図2.2 キーのグループ化

2.2.1 バイト置換

バイト置換 (SubBytes()) は、図 2.3 および 2.4 に示すように、S ボックスを使用して状態行列内の各バイトを置換する独立した非線形バイト置換です。 SボックスはRAM [13] を介して実装され、可逆的です。バイト置換のための「ルックアップテーブル」として、状態行列内の要素(バイト)を置換する場合、バイトの上位4ビットを「行座標」、下位4ビットを「列座標」と見なすことができ、対応する座標の値が置換された値として出力されます。例えば、暗号化する場合、状態行列によって出力されるバイトは0xAB(左側)であり、次にSボックスの0xA行と0xB列をチェックして値0x62(右側)を取得し、0x62を使用して元の0xABを置き換えます[7,29]。

図2.3 Sボックス

図2.4 状態行列のバイト置換プロセス

2.2.2 行シフト

図 2.5 に示すように、行シフト (ShiftRow()) では、状態行列の 2 行目、3 行目、4 行目のバイトが循環的になっており、各行のオフセットが異なります。最初の行はシフトする必要はなく、2 行目は 1 位置左にシフトし、3 行目は 2 位置左にシフトし、4 行目は 3 位置左にシフトします。

図2.5 行変換における巡回シフト状態行列の最後の3行

2.2.3 カラム混合

図 2.6 に示すように、状態行列を列混合 (MixColumns()) で変換する場合は、列ごとに行われます。各列は 4 項式に処理され、特定の行列が乗算されます。

図2.6 状態行列における列混合操作

2.2.4 ラウンドキーの追加

図 2.1 および 2.7 に示すように、ラウンド キー状態行列の列は、ラウンド暗号文状態行列の対応する列と XOR 演算され (列ごとに実行)、次の暗号化の入力状態行列として新しいラウンド暗号文状態行列が生成されます。

図2.7 ラウンドキープラス状態行列の変換図

2.3 キー拡張

図2.8 キー拡張

2.4 AES復号化プロセス

AES-128の復号化プロセスは、基本的に暗号化の逆プロセスであるため(図2.1および2.2を参照)、復号化にも10ラウンドの変換が必要です。スペースの制限により、ここでは詳しく説明しません。詳細については、参考文献[7]を参照してください。

3AESパイプライン構造RTL実装

3.1 パイプラインAES回路構造

図3.1 パイプライン構造を持つAESの全体構造

図3.1に示すように、パイプライン設計では、AESの暗号化と復号化を分離し、それぞれに対してパイプライン処理を実行し、主に大量の組み合わせロジックを使用し、「速度のために面積を犠牲にする」戦略を採用しています[7]。

3.2 AESパイプライン構造暗号化回路

図3.2はAES暗号化回路のパイプライン構造を示しています。ポート信号は表3.1に示されています。

表3.1 暗号化ユニットポート信号

図3.2 パイプライン構造AES暗号化回路モジュール図

AES-128は、10個の暗号化を必要とします。第1ラウンドで生成されたラウンドキーでXaureされ、結果は第2ラウンドの入力として使用されますラウンドキーが追加されたときに10回目のラウンドで生成されたラウンドキーと正確に整合しています(ある意味では、サイドチャネル攻撃を効果的に防ぐことができます)[7]。

KeyExpantionは鍵拡張モジュールであり、これも10ラウンドの操作(RoundkeyGen_0からRoundkeyGen_9)を必要とする。各ラウンドでは、Rotword()、SubByte()、Rcon[j] XORの3つのステップが順番に実行される。ラウンド1から9では、各鍵のラウンド定数XORによって生成された状態行列が、データ列が混合された後の状態行列とXORされる。10ラウンドでは、鍵のラウンド定数XORの状態行列が、データの遅延レジスタの状態行列とXORされる。このとき、valid_out信号がハイにプルアップされ、暗号文が出力される[7]。

復号回路の設計については参考文献[7]を参照してください。

3.3 パフォーマンス評価

FPGAテストと検証を経て、tt28nmプロセスを使用して設計が合成されました。パイプライン構造のAES設計面積は0.17mm2で、ループ反復構造(0.018mm2)の約10倍であり、これも妥当な結果です。この構造のAESデータの入力からレジスタまでのクリティカルパス時間は0.39nsであり、レジスタから出力までのクリティカルパス時間も0.39nsである。したがって、この構造の理論上の最大周波数は1GHz/0.39ns=2.56GHzである[7]。

結論

本稿では、AES用のパイプライン構造IPコア設計法について簡単に紹介する。現在、使用されているクロックはCPUと同じソースと周波数である[2]。もちろん、プロセッサクロックで非同期処理を実行し、DMA(ダイレクトメモリアクセス)と組み合わせて使用​​​​することが推奨される。これにより、AESは最大周波数に近い状態で動作できるようになり(もちろん、これは消費電力と速度の間の妥協点でもある)、CPUの負担が最大限に軽減され、スループットと暗号化効率がさらに向上する。

参考文献

[1] 科学普及中国。IPコア。[EB/OL]。https://baike.baidu.com/item/

IP%E6%A0%B8#参照-[1]-677617-ラップ

[2] モヒット・アローラ著『ハードウェアアーキテクチャの芸術:デジタル回路の設計方法と技術』[M]。李海東、来平、石千他訳。北京:機械工業出版社、2014年2月

[3] Michael D Ciletti. Verilog HDL Advanced Digital Design[M]. 張亜奇訳. 北京: 電子産業出版社, 2005

[4] ザイナラベディン・ナヴァビ著『Verilog HDL デジタル設計と合成』[M]。夏宇文訳。北京:電子産業出版社、2009年

[5] J Bhasker. Verilog HDL入門[M]. 夏宇文訳. 北京: 北京航空航天大学出版局, 2008

[6] 蔡樹平. Verilog HDLデジタル集積回路高度プログラミング[M]. 西安:西安電子科技大学出版局、2015年。

[7] 馬昊. 高性能プロセッサセキュリティモジュールの設計と最適化[D]. 西安:西安電子科技大学修士論文、2020年。

[8] 張春生、SOPCのIPコア設計とIPコア再利用技術の研究[D]、長沙:国立国防大学技術論文、2006:7-10。

[9] Liang Ying. SOPCにおけるFPGA IPコア構成方式の研究と実装[D]. 西安:西安電子科技大学論文、2010:5-8。

[10] 孫涛. IPソフトコア検証方法の研究[D]. 北京:北京交通大学学位論文、2009:5-13。

[12] Ren Aifeng、Luo Feng、Song Shiquan、他「FPGAに基づく組み込みシステム設計[M]」西安:西安電子科技大学出版局、2014:100-114。

[13] Dai Qiang、Dai Zibin、Li Wei。強化された遅延を考慮したCSEアルゴリズムに基づくAES Sボックス回路の最適設計[J]。Journal of Electronics、2019、47(01):129-136。

[14] 商務長官。連邦情報処理標準出版物-197-2001。高度暗号化標準(AES)[S]。アメリカ:国立標準技術研究所(NIST)、2001年。http://csrc.nist.gov/publications/fips/fips197/fips-197.pdfで入手可能

[15] Gu Lizhe、Zheng Shihui、Yang Yixian. 現代暗号講座(第2版)[M]. 北京:北京郵電大学出版社、2015:73-85。

[16] 鄭東、趙清蘭、張英輝。暗号研究[J]。西安郵電大学誌、2013年、18(06):1-10。

[17] 胡翔東、魏秦芳、胡蓉『応用暗号学(第3版)』北京:清華大学出版局、2014年:108-130。

[18] Celio, Christopher、Patterson他「Berkeley Out-of-Order Machine (BOOM): 業界競争力のある合成可能なパラメータ化RISC-Vプロセッサ[R]」、EECS部門、カリフォルニア大学バークレー校、2015年6月。

[19] Christopher Celio、David Patterson、Krste Asanovi′c、「Berkeley Out-of-Order Machine (BOOM) 設計仕様」[R]、EECS部門、カリフォルニア大学バークレー校、2016年12月。

[20] Gavin Ferris、Robert Mullins、Wei Song他「オープンソース64ビットSoC[EB/OL]」

https://www.lowrisc.org/, 2020-3

[21] PULPinoユーザーマニュアル[EB/OL]、http://www.pulp-platform.org/documentation/、2016-8

[22] ロシアGNSSセンサー会社、RISC-V VHDL:システムオンチップ[EB/OL]、

https://github.com/sergeykhbr/riscv_vhdl/, 2020-3

[23] クリストファー・シュミッツ、セバスチャン・ペープ。LiSRA:情報セキュリティにおける意思決定支援のための軽量セキュリティリスク評価[J]。Computers&Security、2020年、90。

[24] 劉楊「2019年の海外情報セキュリティ動向レビュー[J]」機密科学技術、2019(12):8-13。

[25] 張煥国、林東岱、馬建鋒、他「サイバースペースセキュリティのレビュー[J]」サイエンス中国:情報科学、2016年、46(02):125-164。

[26] 雷新鋒、宋淑民、薛睿、他「計算的に信頼性の高い暗号プロトコルの形式分析のレビュー[J]」中国コンピュータジャーナル、2014年、37(05):

993-1016.

[27] Feng Dengguo、Xu Jing、Lan Xiao。5Gモバイル通信ネットワークセキュリティの研究[J]。ソフトウェアジャーナル、2018、29(06):1813-1825。

[28] Hong Ze、Hong Feng、Chen Zhenjiao。自動車のインターネットの情報セキュリティのための暗号化エンジンチップの設計[J]。ネットワークセキュリティ技術と応用、2020(02):36-38。

[29] TimeShatter. AES暗号化アルゴリズムの詳細な紹介と実装[EB/OL]。https://blog.csdn.net/qq_28205153/

記事/詳細/55798628.html/2017-02-19

[30] J.Daemen、V.Rijmen。Advanced Encryption Standard (AES) アルゴリズム:Rijndael[M]の設計。Gu DawuとXu Shengbo訳。北京:清華大学出版局、2003:216-220。

<<:  CCTVがAI占い金儲けのルーティンを暴露:一部の人々の心理的ニーズを捉えたAI占いソフトウェアの結果はすべてプログラミングに基づいています

>>:  顔スキャンは便利ですが、隠れた危険も伴うので、注意が必要です。

ブログ    

推薦する

ロボットにあなたのことをもっと理解させるにはどうすればいいでしょうか?

[[361286]]自然言語処理技術は人工知能技術の重要な分野です。自然言語処理技術自体が成熟する...

データサイエンティストにとって最も重要なアルゴリズムと統計モデル

数年間この業界に携わってきたデータ サイエンティストとして、私は LinkedIn や QuoLa ...

...

...

注意メカニズムにバグがあり、ソフトマックスが犯人であり、すべてのトランスフォーマーに影響を与えている

「私は、8年間誰も発見できなかった注目度の式のバグを発見しました。GPTやLLaMAを含むすべてのT...

AI に物語を伝える: シーンを想像するように教えるにはどうすればよいでしょうか?

[[282830]]視覚的な想像力は人間が生まれながらに持っているものです。AI は同様の能力を持...

中間レビュー: 2021 年に最も注目される AI スタートアップ 10 社

[[407377]] 2021年はまだ半分しか経っていませんが、人工知能に注力する人気のスタートアッ...

...

百度が新製品「小度」を発売、マルチラウンド対話と子供向けモードを追加

昨日の午後、百度は新製品発表会で「小度」スマートスピーカーを発表しました。このスマートスピーカーは百...

Facebook は、自社の成功の要因となったアルゴリズムをどうやって修正できるのでしょうか?

[[428596]]専門家はCNNに対し、フェイスブックのアルゴリズムは改善できる可能性があると語...

興奮はテレビシリーズに匹敵、マスク氏とウルトラマン、そしてOpenAIとの「愛憎関係」

最近、マスク氏がOpenAIを訴えたというニュースがテクノロジー界に再び波紋を巻き起こしている。 1...

GIF 圧縮アルゴリズムの発明者が IEEE の最高栄誉賞を受賞

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

優秀な AI 技術者が不足しています。学生たちはこの波にまだ追いつくことができるでしょうか?

ディープラーニングは、機械学習の最も重要な分野の 1 つとして、近年急速に発展しています。膨大なデー...

...