「AVR 8ビットマイクロコントローラでサイモンとスペックブロック暗号」 ボーリューら。ローエンドの8ビットマイクロコントローラーでのSIMONおよびSPECKの実装を調査し、パフォーマンスを他の暗号と比較します。Atmel ATmega128は、128 Kバイトのプログラム可能なフラッシュメモリ、4 KバイトのSRAM、および32個の8ビット汎用レジスタで使用されます。
3つの暗号化実装が比較されます。
- RAM最小化
これらの実装では、フラッシュプログラムメモリに事前に展開されたラウンドキーを含めることにより、RAMを使用してラウンドキーを保存する必要がありません。この拡張キーを更新するためのキースケジュールは含まれていないため、これらの実装はキーが静的なアプリケーションに適しています。
- 高スループット/低エネルギー
これらの実装には、キースケジュールが含まれ、完全に展開された実装の約3%以内のスループットを達成するために、暗号化ルーチンにラウンド関数の十分なコピーが展開されます。フラッシュに保存されているキーは、ラウンドキーを生成するために使用され、ラウンドキーはその後RAMに保存されます。
- フラッシュ最小化
主なスケジュールはここに含まれています。スペースの制限は、これらの実装の不完全な説明しか提供できないことを意味します。ただし、前の2種類の実装には、すでに非常に控えめなコードサイズがあることに注意してください。
異なる暗号を比較するために、パフォーマンス効率の尺度- ランク -が使用されます。ランクは、スループットをメモリ使用量で割った値に比例します。
SPECKは、サポートするすべてのブロックとキーサイズの上位にランクされます。128ビットのブロックサイズを除き、SIMONはすべてのブロックサイズとキーサイズで2番目にランク付けされます。
...
驚くことではありませんが、AES-128はこのプラットフォームで非常に優れたパフォーマンスを発揮しますが、同じブロックとキーサイズの場合、SPECKのパフォーマンスは約2倍です。同じキーサイズで、64ビットブロックサイズの場合、SIMONとSPECKは、AESよりもそれぞれ2倍と4倍の全体的なパフォーマンスを実現します。
SPECK 128/128とAES-128を比較すると、SPECKのメモリフットプリントが大幅に削減されていることがわかります(460バイト対970バイト)一方で、スループットはわずかに低下しています(171サイクル/バイト対146サイクル/バイト)。したがって、SPECKのパフォーマンス(選択したメトリックで)はAESよりも高くなります。速度がエネルギー消費と相関していることを考慮して、著者らは「AES-128は、このプラットフォームのSPECK 128/128よりもエネルギー重視のアプリケーションでより良い選択になる可能性がある」と結論付けています。しかし、著者は、RAMアクセスの高速使用(高速AES実装)がレジスタベースのSPECK実装よりもエネルギー効率が高いかどうかは不明です。いずれの場合も、フラッシュメモリの使用量を大幅に削減できます。これは、ローエンドのマイクロコントローラーに関連する可能性があります。
アプリケーションが高速を必要とし、メモリ使用量が優先されない場合、AESは、認識している128ビットブロックとキーを持つすべてのブロック暗号の中で最速の実装(1912バイトのフラッシュ、432バイトのRAMを使用)を持ちます。コストはわずか125サイクル/バイトです。AESの最も近い競合製品はSPECK 128/128で、完全に展開された実装のコストは138サイクル/バイトです。速度はエネルギー消費と相関関係があるため、AES-128は、このプラットフォームのSPECK 128/128よりもエネルギーが重要なアプリケーションに適した選択肢です。ただし、8ビットマイクロコントローラー上の多くのアプリケーションで予想されるように、128ビットブロックが不要な場合は、よりエネルギー効率の高いソリューション(628バイトのフラッシュ、108バイトのRAMを使用)はSPECK 64/128で、 AES-128と同じキーサイズと暗号化コストがわずか122サイクル/バイト、
さらに、このトークにはエニグマ図があり、エニグマを参照する暗号に抵抗することができますか?