ISO/IEC 29167-10:2017 情報技術—自動識別およびデータキャプチャ技術—パート10:エアインターフェイス通信用の暗号スイートAES-128セキュリティサービス | ページ 7

※一部、英文及び仏文を自動翻訳した日本語訳を使用しています。

3.1 用語と定義

3.1.1

AES-CMAC-96 (キー、データ)

入力データ「data」による CMAC 生成。初期化ベクトル「IV」と 128 ビット鍵「key」を使用し、128 ビット CMAC コードの最上位 96 ビットのみを使用して結果を切り捨てます。

3.1.2

AES-DEC (キー、データ)

入力データ「data」と 128 ビット鍵「key」の ECB 復号化モードの AES

3.1.3

AES ENC (キー、データ)

入力データ「data」と 128 ビット鍵「key」の ECB 暗号化モードの AES

3.1.4

認証ブロック

タグまたは質問器の信頼性を検証するための情報を含む変数

3.1.5

ビット文字列

0 と 1 の順序付けされたシーケンス

3.1.6

ブロック暗号

キーによってパラメータ化された関数ファミリーとその逆関数

注記 1:この関数は、固定長のビット列を同じ長さのビット列にマップします。

3.1.7

ブロックサイズ

ブロック暗号の入力 (または出力) ブロック内のビット数

3.1.8

CBC ENC _AES (IV, キー、データ)

NIST/SP 800-38A に準拠した、初期化ベクトル「IV」と 128 ビット鍵「key」を使用した、入力データ「data」の CBC 暗号化モードの AES

注記 1:出力ブロック (O i ) は、次のように入力ブロック (I i ) から取得されます。
  • O 1 = AES-ENC, ( キー, I 1 XOR IV )、および
  • O n = AES-ENC( キー, I n XOR O (n−1) )

注記 2: C.2 では、暗号ブロックの連鎖について説明しています。

3.1.9

CBC DEC _AES INV (IV, キー、データ)

NIST/SP 800-38A に準拠した、初期化ベクトル「IV」と 128 ビット鍵「key」を使用した、入力データ「data」の CBC 復号化モードの AES

注記 1:出力ブロック (O i ) は、次のように入力ブロック (I i ) から取得されます。
  • O 1 = AES-DEC( key, I 1 ) XOR IV, および
  • O n = AES-DEC( key, I n ) XOR I (n-1) )

3.1.10

CBC ENC _AES INV (IV, キー、データ)

初期化ベクトル「IV」と 128 ビット鍵「key」を使用した暗号化モードの CBC

注記 1:出力ブロック (O i ) は、次のように入力ブロック (I i ) から取得されます。
  • O 1 = AES-DEC, ( キー, I 1 XOR IV )、および
  • O n = AES-DEC( キー, I n XOR O (n-1) )

3.1.11

CBC DEC _AES (IV, キー、データ)

初期化ベクトル「IV」と 128 ビット鍵「key」を使用した復号化モードの CBC

注記 1:出力ブロック (O i ) は、次のように入力ブロック (I i ) から取得されます。
  • O 1 = AES-ENC( キー, I 1 ) XOR IV, および
  • O n = AES-ENC( key, I n ) XOR I (n-1) )

3.1.12

暗号文

暗号化された平文

3.1.13

暗号ベースのメッセージ認証コード

CMAC

対称キーブロック暗号に基づくアルゴリズム

注記 1:この文書では、MAC を計算する前にデータに体系的にゼロビットが埋め込まれ、その結果、MAC 入力の最後のブロックが常に完了します。したがって、常に K1-MAC が使用されます。これにより、K2-MAC の計算が無駄になります。

注記 2: MAC の計算は、ISO/IEC 9797-1 の MAC メソッド 5 の要件に準拠するものとする。

3.1.14

コマンド(メッセージ)

インタロゲータが「メッセージ」をパラメータとしてタグに送信するデータ

3.1.15

D

カスタム データおよびヘッダーとして認証応答に追加できる 128 ビット ブロックの数

3.1.16

データブロック

ブロック

ブロック暗号のブロックサイズを長とするビットのシーケンス

3.1.17

ENC_キー

暗号化機密性保護に使用されるキーを含む変数

注記 1:この変数は、暗号化された機密性の保護に使用されます。

3.1.18

H

ヘッダーのビット数

3.1.19

ヘッダー

BlockSize, Offset, Profile, BlockCount で構成される H ビット

3.1.20

初期化ベクトル

一部の動作モードで追加の初期入力として必要な入力ブロック

3.1.21

入力ブロック

ブロック暗号アルゴリズムの順方向暗号関数または逆方向暗号関数への入力となるデータ

3.1.22

平文を暗号文に、またはその逆に変換するため、またはメッセージ認証コードを生成するために、暗号化アルゴリズムによって使用されるビット列

3.1.23

キーID

単一キーの数値指定子

3.1.24

キー[キーID].ENC_key

暗号化に使用されるキーを含む変数

注記 1:この変数は暗号化に使用されます。

3.1.25

キー[キーID].MAC_key

暗号化の整合性保護に使用できるキー

3.1.26

MAC_キー

暗号化整合性保護に使用されるキーを含む変数

注記 1:この変数は暗号の完全性保護に使用されます。

3.1.27

メモリプロファイル

カスタム データ ブロックをアドレス指定するためのタグのメモリ内の開始ポインター

3.1.28

メッセージ

暗号化スイートによって定義されるコマンドの一部

3.1.29

動作モード

ファッション

対称キー ブロック暗号アルゴリズムを特徴とするデータの暗号変換アルゴリズム

3.1.30

出力ブロック

ブロック暗号アルゴリズムの順方向暗号関数または逆方向暗号関数の出力であるデータ

3.1.31

プレーンテキスト

暗号文に暗号化される前、または暗号文から復号化された後の通常の読み取り可能なテキスト

3.1.32

返事

タグが「応答」をパラメータとして質問器に返すデータ

3.1.33

応答

暗号スイートによって定義された応答 (保存または送信) の一部

3.1.34

言葉

16ビットで構成されるビット列

3.2 記号と略語

AES高度な暗号化標準
CBC暗号ブロックチェーン
CMAC暗号ベースのメッセージ認証コード
ディビジョン部門の不可欠な部分
フィールド[a:b]フィールド内のビット列からの選択

a > b の場合、ビット文字列フィールドからのビット文字列の選択。選択範囲は、Field の文字列のビットからビット番号 a までのビット番号 b までで、Field[0] が最下位ビットを表します。フィールド a=b から 1 ビットを選択します。

たとえば、Field[2:0] は、Field の 3 つの最下位ビットの選択を表します。

FIPS連邦情報処理標準
初期化ベクトル
LSB最下位バイト
マックメッセージ認証コード
MPIメモリプロファイルインジケーター
MSB最上位バイト
NIST米国国立標準技術研究所 (米国)
RFU将来の使用のために予約されています
TIDタグ IDentification または Tag IDentifier (コンテキストに応じて)
UII固有の識別ID
b用語「xxxx」の 2 進表記。「x」は 2 進数を表します。
h用語「xxxx」の 16 進表記。「x」は 16 進数を表します。

この暗号スイートでは、16 進数のバイトは、左側に最上位バイト、右側に最下位バイトとして表示されます。バイトごとのビット順序も、左側に最上位ビット、右側に最下位ビットとして表示されます。

たとえば、「ABCDEF」では、バイト「AB」が最上位バイトであり、バイト「EF」が最下位バイトです。

||書かれた順序 (左から右) で送信される構文要素の連結

たとえば、「123456」||「ABCDEF」の結果は「123456ABCDEF」ここで, バイト「12」が最上位バイトで、バイト「EF」が最下位バイトです。

注記 1 このプロトコルでは、次の表記規則が使用されます。

  • 州と国旗は太字で示されています。一部のコマンド パラメータはフラグでもあります。フラグとして使用されるコマンド パラメータは太字になります。例: 準備完了 。
  • コマンドパラメータには下線が引かれています。一部のフラグはコマンド パラメータでもあります。コマンドパラメータとして使用されるフラグには下線が付きます。例:ポインタ。
  • コマンドは斜体で示されています。変数は斜体でも示されます。コマンドと変数の間に混乱がある可能性がある場合、このプロトコルは明示的に説明します。例:クエリ

5 AES-128 暗号スイートの紹介

Advanced Encryption Standard (AES) は、いわゆる置換置換ネットワークに基づく、オープンでロイヤリティフリーの対称ブロック暗号です。 AES は、RFID タグなどの非常に制約された環境を含む、ソフトウェアとハ​​ードウェアの両方での効率的な実装に非常に適しています。 AES 暗号は ISO/IEC 18033-3 として標準化されています。

AES は米国標準技術研究所 (NIST) によって承認されています。これは、多数の競合する暗号化アルゴリズムを含む 5 年間の標準化プロセスを経て、2001 年に標準として承認され、2001 年 11 月に FIPS PUB 197 として発行されました。

AES は、設計基準およびテスト ベクトルとともに参考文献 [2] で公開されています。

AES は通常、暗号化を使用して平文を暗号化し、復号化を使用して暗号文を復号化します。この暗号スイートは、平文の暗号化と暗号文の復号化の両方に暗号化を使用します。これにより、タグで暗号化のみの実装を使用できるようになります。

AES テスト ベクトルのリファレンスは付録 D に記載されています。

付録 F には、この文書で指定されている機能の実装例が記載されています。

参考文献

1ISO/IEC 15693-3:2009/AMD4:2017, ID カード — 非接触集積回路カード — 近隣カード — Part 3: 衝突防止および伝送プロトコル — 修正 4: セキュリティ フレームワーク
2ISO/IEC 18033-3, 情報技術 - セキュリティ技術 - 暗号化アルゴリズム - Part 3: ブロック暗号
3ISO/IEC 18000-3, 情報技術 - 品目管理のための無線周波数識別 - Part 3: 13.56 MHz でのエア インターフェイス通信のパラメータ
4EPC™ 無線周波数アイデンティティ プロトコル、UHF RFID Generation-2 バージョン 2.0.1, 860 MHz ~ 960 MHz での通信用の RFID エア インターフェイス プロトコルの仕様。 GS1 EPCglobal™株式会社
5ERC REC 70-03, 短距離デバイス (SRD) の使用に関する、付録 1, ボリューム 欧州無線通信委員会 (ERC)
6NIST Special Publication 800-38B, ブロック暗号動作モードに関する推奨事項: 認証のための CMAC モード
7NIST 特別出版物 800-38A, ブロック暗号動作モードの推奨: 方法と技術

3.1 Terms and definitions

3.1.1

AES-CMAC-96 (key, data)

CMAC generation with input data"data", using initialization vector"IV" and 128-bit key"key", truncating the result by using only the 96 most significant bits from the 128-bit CMAC code

3.1.2

AES-DEC (key, data)

AES in ECB decryption mode of input data"data" and 128-bit key"key"

3.1.3

AES-ENC (key, data)

AES in ECB encryption mode of input data"data" and 128-bit key"key"

3.1.4

AuthenticationBlock

variable that contains information to verify the authenticity of the Tag or the Interrogator

3.1.5

bit string

ordered sequence of 0s and 1s

3.1.6

block cipher

family of functions and their inverse functions that is parameterized by keys

Note 1 to entry: The functions map bit strings of a fixed length to bit strings of the same length.

3.1.7

blocksize

number of bits in an input (or output) block of the block cipher

3.1.8

CBCENC_AES (IV, key, data)

AES in CBC encryption mode of input data"data", using initialization vector"IV" and 128-bit key"key", according to NIST/SP 800-38A

Note 1 to entry: Output blocks (Oi) are obtained from input blocks (Ii) as follows:
  • O1 = AES-ENC( key, I1 XOR IV ), and
  • On = AES-ENC( key, In XOR O(n−1) ).

Note 2 to entry: C.2 describes the cipher block chaining.

3.1.9

CBCDEC_AESINV (IV, key, data)

AES in CBC decryption mode of input data"data", using initialization vector"IV" and 128-bit key"key", according to NIST/SP 800-38A

Note 1 to entry: Output blocks (Oi) are obtained from input blocks (Ii) as follows:
  • O1 = AES-DEC( key, I1) XOR IV, and
  • On = AES-DEC( key, In) XOR I(n-1) ).

3.1.10

CBCENC_AESINV (IV, key, data)

CBC in encryption mode using initialization vector"IV" and 128-bit key"key"

Note 1 to entry: Output blocks (Oi) are obtained from input blocks (Ii) as follows:
  • O1 = AES-DEC( key, I1 XOR IV ), and
  • On = AES-DEC( key, In XOR O(n-1) ).

3.1.11

CBCDEC_AES (IV, key, data)

CBC in decryption mode using initialization vector"IV" and 128-bit key"key"

Note 1 to entry: Output blocks (Oi) are obtained from input blocks (Ii) as follows:
  • O1 = AES-ENC( key, I1) XOR IV, and
  • On = AES-ENC( key, In) XOR I(n-1) )

3.1.12

ciphertext

encrypted plaintext

3.1.13

cipher-based message authentication code

CMAC

algorithm based on a symmetric key block cipher

Note 1 to entry: In this document, data is systematically padded with zero bits before computing the MAC, resulting in the last block of MAC inputs is always complete. Therefore, K1-MAC is always used. It makes the computation of K2-MAC useless.

Note 2 to entry: The computation of the MAC shall comply with the requirements of MAC method 5 in ISO/IEC 9797-1.

3.1.14

Command (Message)

data that the Interrogator sends to a Tag with"Message" as parameter

3.1.15

D

number of 128-bit blocks that can be added to the authentication response as custom data and header

3.1.16

data block

block

sequence of bits whose length is the block size of the block cipher

3.1.17

ENC_key

variable that contains the key that will be used for cryptographic confidentiality protection

Note 1 to entry: This variable shall be used for cryptographic confidentiality protection.

3.1.18

H

number of bits of the header

3.1.19

Header

H bits composed of BlockSize, Offset, Profile and BlockCount

3.1.20

Initialization Vector

IV

input block that some modes of operation require as an additional initial input

3.1.21

input block

data that is an input to either the forward cipher function or the inverse cipher function of the block cipher algorithm

3.1.22

Key

string of bits used by a cryptographic algorithm to transform plaintext into ciphertext or vice versa or to produce a message authentication code

3.1.23

KeyID

numerical designator for a single key

3.1.24

Key[KeyID].ENC_key

variable that contains the key that will be used for encryption

Note 1 to entry: This variable shall be used for encryption.

3.1.25

Key[KeyID].MAC_key

key that can be used for cryptographic integrity protection

3.1.26

MAC_key

variable that contains the key that will be used for cryptographic integrity protection

Note 1 to entry: This variable shall be used for cryptographic integrity protection.

3.1.27

Memory Profile

start pointer within the Tag’s memory for addressing custom data block

3.1.28

Message

part of the command that is defined by the crypto suite

3.1.29

Mode of Operation

Mode

algorithm for the cryptographic transformation of data that features a symmetric key block cipher algorithm

3.1.30

output block

data that is an output of either the forward cipher function or the inverse cipher function of the block cipher algorithm

3.1.31

Plaintext

ordinary readable text before being encrypted into ciphertext or after being decrypted from ciphertext

3.1.32

Reply (Response)

data that the Tag returns to the Interrogator with"Response" as parameter

3.1.33

Response

part of the reply (stored or sent) that is defined by the crypto suite

3.1.34

word

bit string comprised of 16 bits

3.2 Symbols and abbreviated terms

AESAdvanced Encryption Standard
CBCCipher Block Chaining
CMACCipher-based Message Authentication Code
DIVintegral part of a division
Field[a:b]selection from a string of bits in Field

For a > b, selection of a string of bits from the bit string Field. Selection ranges from bit number a until and including bit number b from the bits of the string in Field, whereby Field[0] represents the least significant bit. For selecting one single bit from Field a=b.

For example, Field[2:0] represents the selection of the three least significant bits of Field.

FIPSFederal Information Processing Standard
IVInitialization Vector
LSBLeast Significant Byte
MACMessage Authentication Code
MPIMemory Profile Indicator
MSBMost Significant Byte
NISTNational Institute of Standards and Technology (United States)
RFUReserved for Future Use
TIDTag-IDentification or Tag IDentifier (depending on context)
UIIUnique Identification ID
xxxxbbinary notation of term"xxxx", where"x" represents a binary digit
xxxxhhexadecimal notation of term"xxxx", where"x" represents a hexadecimal digit

In this crypto suite, the bytes in the hexadecimal numbers are presented with the most significant byte at the left and the least significant byte at the right. The bit order per byte is also presented with the most significant bit at the left and the least significant bit at the right.

For example, in"ABCDEF" the byte"AB" is the most significant byte and the byte"EF" is the least significant byte.

||concatenation of syntax elements, transmitted in the order written (from left to right)

For example,"123456" ||"ABCDEF" results in"123456ABCDEF" ここで, the byte"12" is the most significant byte and the byte"EF" is the least significant byte.

Note 1 to entry This protocol uses the following notational conventions:

  • States and flags are denoted in bold. Some command parameters are also flags; a command parameter used as a flag will be bold. Example: ready .
  • Command parameters are underlined. Some flags are also command parameters; a flag used as a command parameter will be underlined. Example: Pointer.
  • Commands are denoted in italics. Variables are also denoted in italics. Where there might be confusion between commands and variables, this protocol will make an explicit statement. Example: Query.

5 Introduction of the AES-128 crypto suite

The Advanced Encryption Standard (AES) is an open, royalty-free, symmetric block cipher based on so-called substitution-permutation networks. AES is highly suitable for efficient implementation in both software and hardware, including extremely constrained environments such as RFID Tags. The AES cipher is standardized as ISO/IEC 18033-3.

AES is approved by the National Institute of Standards and Technology (NIST). It was approved as a standard in 2001 following a 5-year standardization process that involved a number of competing encryption algorithms and published as FIPS PUB 197 in November 2001.

AES was published, along with design criteria and test vectors, in Reference [2].

NOTE AES normally uses encryption to encrypt plaintext and decryption to decrypt ciphertext. This crypto suite uses encryption both to encrypt plaintext as well as to decrypt ciphertext. This allows the use of an encryption-only implementation on the Tag.

References for AES test vectors are provided in Annex D.

Annex F provides examples for the implementation of the functionality that is specified in this document.

Bibliography

1ISO/IEC 15693-3:2009/AMD4:2017, Identification cards — Contactless integrated circuit cards — Vicinity cards — Part 3: Anticollision and transmission protocol — AMENDMENT 4: Security framework
2ISO/IEC 18033-3, Information technology — Security techniques — Encryption algorithms — Part 3: Block ciphers
3ISO/IEC 18000-3, Information technology — Radio frequency identification for item management — Part 3: Parameters for air interface communications at 13,56 MHz
4EPC™ Radio-Frequency Identity Protocols, UHF RFID Generation-2 Version 2.0.1, Specification for RFID Air Interface Protocol for Communications at 860 MHz – 960 MHz; GS1 EPCglobal™ Inc.
5ERC REC 70-03, Relating to the Use of Short Range Devices (SRD), Annex 1, Band e; European Radio-communications Committee (ERC)
6NIST Special Publication 800-38B, Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication
7NIST Special Publication 800-38A, Recommendation for Block Cipher Modes of Operation: Methods and Techniques