メディア

マイコンに搭載されているAESって何?Q&Aで学ぶマイコン講座(82)(2/6 ページ)

» 2023年07月07日 10時00分 公開

 AESの用途とアルゴリズムの概要について説明した後、STマイクロエレクトロニクス(以下、ST)の汎用32ビットマイコン「STM32U5シリーズ」*2)に搭載されているAESアクセラレーターを例にして解説します。

*2)STM32U5マイコン

AESの用途

 AESは、以下のような用途で使用されます。

  • 無線通信のセキュリティ
  • ブラウザ通信の暗号化
  • ファイルの暗号化
  • プロセッサのセキュリティ

AESの鍵ビット長

 AESには、128/192/256ビットの3種類の鍵ビット長があります。ビット長が長いほど安全性は高まる一方、処理時間も長くなります。多くのセキュリティ関連規格で、128ビットが最低限の実装、256ビットがより高度なセキュリティ向けのオプションとして要求されます。

ブロック暗号の使用モード

 ブロック暗号には下記の使用モードがあります。用途に応じてそれぞれのモードを使用します(表1

表1:ブロック暗号の使用モード
用途 略称 モード名称 仕様書
秘密保持 ECB Electronic Codebook NIST SP 800-38A
CBC Cipher Block Chaining NIST SP 800-38A
CFB Cipher Feedback NIST SP 800-38A
OFB Output Feedback NIST SP 800-38A
CTR Counter NIST SP 800-38A
XTS XEX Tweakable Block Cipher with Ciphertext Stealing NIST SP 800-38E
認証 CBC-MAC Cipher Block Chaining - Message Authentication Code ISO/IEC 9797-1
CMAC Cipher-based Message Authentication Code NIST SP 800-38B
HMAC Keyed-hash Message Authentication Code NIST FIPS PUB 198-1
GMAC Generating a Message Authentication Code NIST SP 800-38D
認証付き
暗号化
CCM Counter with Cipher Block Chaining-Message Authentication Code NIST SP 800-38C
RFC3610
GCM Galois/Counter Mode NIST SP 800-38D

AESによる暗号化アルゴリズムの概要

 暗号化の開始時、入力データ(平文)はStateと呼ばれる4×4バイト(全128ビット)の2次元配列にコピーされます(図1

<strong>図1:state配列</strong>[クリックで拡大] 図1:state配列[クリックで拡大]

 最初のラウンド鍵の追加後、State配列はラウンド関数を10回、12回、14回(鍵長に依存)実行することで変換されます。最終ラウンドは若干処理が異なり、MixColumns処理がスキップされます。最終的にState配列出力データである暗号文が出力されます(図2

<strong>図2:AESの暗号化アルゴリズム</strong>[クリックで拡大] 図2:AESの暗号化アルゴリズム[クリックで拡大]

 ラウンド関数は、次頁で説明するKey Expansionを用いて生成された鍵スケジュールKを用いてパラメータ化されます。暗号化時のラウンド関数の処理フローは、以下4つの処理で構成されています。

  • AddRoundKey
  • SubBytes
  • ShiftRows
  • MixColumns

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.