LibeSIM

比嘉 叶

2026/10/02 01:00

SIM認証の仕組みとは?AKA(RAND/AUTN/RES)の基本を解説

SIM認証の仕組みとは?AKA(RAND/AUTN/RES)の基本を解説

こんにちは、コモン・クリエーションでIoT・SIMエンジニアリングサービスでプロジェクトマネジメントを担当している比嘉です。本記事では、SIM カードがモバイルネットワークへの接続時に行っている「認証」の仕組みを解説します。SIM の存在意義そのものと言ってよいテーマです。

はじめに

スマートフォンの電源を入れると、数秒でアンテナピクトが立ち、通信が始まります。この裏側では、ネットワークが「この端末は本当に契約者のものか」を確認する認証処理が毎回実行されています。その主役が SIM(正確には UICC 上の USIM アプリケーション)です。

本稿では、以下の項目を 3GPP TS 33.102 および TS 33.501 に基づいて整理します。

  • 認証の土台となる秘密鍵 Ki/K とは何か

  • チャレンジレスポンス方式という考え方

  • AKA(Authentication and Key Agreement)の流れ — RAND / AUTN / RES

  • Milenage と TUAK というアルゴリズムの位置づけ

  • 5G でどう進化したか(5G AKA)

なお、SIM がネットワーク全体の中でどんな役割を担うかは、モバイルネットワークとSIMの役割で解説しています。あわせてご覧ください。


1. まず全体像から — SIM認証をざっくり理解する

SIM 認証の本質は、次の一文に集約できます。

「秘密の鍵そのものは絶対に送らず、『その鍵を持っていなければ解けない問題』への答えで本人確認する」

SIM の中には、契約時に書き込まれた秘密鍵(K、2G 時代の呼び名は Ki)が入っています。同じ鍵のコピーを、通信事業者側の認証サーバーも持っています。つまり「SIM と事業者だけが同じ秘密を共有している」状態です。

ここで素朴な方式を考えると、「SIM が鍵を電波で送り、事業者側が照合する」ことになりますが、これでは盗聴された瞬間に鍵が漏れます。そこで実際の認証はこう動きます。

  1. ネットワークが「ランダムな数字(問題)」を SIM に送る

  2. SIM は秘密鍵を使ってその問題から「答え」を計算し、答えだけを返す

  3. ネットワーク側も同じ計算をしておき、答え合わせをする

答えは問題(乱数)ごとに毎回変わるため、盗聴して答えを再利用する攻撃は成立しません。この方式をチャレンジレスポンス認証と呼びます。銀行のワンタイムパスワードに近い発想です。

さらに 3G 以降の AKA では、逆方向の確認も加わりました。SIM 側も「この問題を出してきたのは、本当に私の契約先のネットワークか」を検証します。偽の基地局にだまされないための仕組みで、これを相互認証と呼びます。2G(GSM)の認証は端末側を確認する一方通行だったため、これが 3G 以降の大きな進化点です。

そして AKA は認証と同時に、その後の通信を暗号化するための鍵(CK/IK)も作り出します。名前に「Key Agreement(鍵合意)」が入っているのはこのためです。


2. 登場人物と秘密鍵 K

2-1. 誰と誰が認証し合うのか

登場人物

場所

役割

USIM

UICC(SIM カード)内のアプリケーション

秘密鍵 K を保持し、答え(RES)と鍵(CK/IK)を計算する

ME(端末)

スマートフォン・IoT 機器

USIM とネットワークの間でメッセージを中継する

AuC/HSS(〜4G)、UDM/ARPF(5G)

事業者のコアネットワーク

K のもう 1 つのコピーを保持し、認証ベクタを生成する

認証の主体はあくまで USIM とコアネットワークです。端末(ME)は計算の当事者ではなく、USIM に RAND と AUTN を渡して結果を受け取る仲介役に徹します。

2-2. 秘密鍵 K の性質

  • 長さは 128 ビットまたは 256 ビットです(TS 31.102 §6.1)。

  • USIM と、事業者側の AuC/ARPF のsecure environment 内にのみ存在します。

  • 読み出しコマンドは存在せず、外部に出力される経路がそもそもありません。

SIM カードが耐タンパデバイス(物理的・電気的な解析攻撃に抵抗するハードウェア)である理由は、この K を守るためです。K が漏れれば、その回線は複製(クローン)できてしまいます。


3. AKAの流れ — RAND・AUTN・RES

3-1. シーケンス

3G AKA の基本形(TS 33.102、TS 31.102 §6.1)を図にすると次の通りです。

  • RAND は 128 ビットの乱数、つまり「今回の問題」です。

  • RES(Response)は USIM が計算した「答え」です。ネットワーク側は事前に計算済みの期待値 XRES(Expected Response)と照合します。

  • AUTN(Authentication Token)は「この問題は正規のネットワークが出した」ことを証明するトークンで、USIM 側の検証に使われます。

3-2. AUTN の中身とネットワーク認証

AUTN は次の 3 要素で構成されます(TS 33.102 §6.3)。

AUTN = (SQN xor AK) || AMF || MAC

フィールド

長さ

役割

SQN(Sequence Number)

48 ビット

リプレイ攻撃対策の通し番号。AK(Anonymity Key)で秘匿される

AMF(Authentication Management Field)

16 ビット

認証の管理情報。5G では先頭ビットを separation bit として使用

MAC(Message Authentication Code)

64 ビット

K を使って RAND・SQN・AMF から計算した認証コード

USIM は受け取った RAND と自分の K から MAC の期待値(XMAC)を計算し、AUTN 内の MAC と一致するかを確かめます。一致すれば「相手は K を知っている = 正規のネットワーク」と判断できます。さらに SQN が過去に受理した値より新しいことも確認し、古い認証要求の再生(リプレイ)を拒否します。

3-3. 計算を担う 7 つの関数

これらの計算は、USIM 内の暗号関数群 f1〜f5(および再同期用の f1*、f5*)が担います(TS 31.102 §6.2)。

関数

出力

用途

f1

MAC/XMAC

ネットワーク認証

f2

RES

加入者認証

f3

CK(Cipher Key)

無線区間の暗号化鍵

f4

IK(Integrity Key)

完全性保護鍵

f5

AK(Anonymity Key)

SQN の秘匿

認証が成功すると CK/IK が USIM から端末に渡され、以後の無線通信の暗号化・改ざん検知に使われます。「1 回の往復で、認証と鍵配送を同時に済ませる」のが AKA の設計です。


4. MilenageとTUAKの位置づけ

ここまで f1〜f5 を「関数」とだけ書きました。実は 3GPP は、この関数の中身を完全には標準化していません。f1〜f5 は事業者が自由に選べる(operator-specifiable)関数であり、3GPP が提供しているのはあくまで「実例アルゴリズム」です(TS 35.206 Introduction)。それが Milenage と TUAK です。

項目

Milenage

TUAK

仕様

TS 35.205〜35.208

TS 35.231〜35.233

暗号コア

Rijndael(AES)

Keccak-f[1600](SHA-3 系)

事業者カスタマイズ値

OP/OPc(128 ビット)

TOP/TOPc(256 ビット)

K の長さ

128 ビット

128 または 256 ビット

位置づけ

事実上の標準として広く利用

Milenage の代替・将来の選択肢

Milenage には OP(Operator Variant Algorithm Configuration Field)という 128 ビットの事業者固有値があり、K と組み合わせて OPc を導出して使います。同じ Milenage でも事業者ごとに挙動を変えられる仕掛けです。SIM の発注時に「K と OPc(または OP)」がプロファイルデータの中核になるのは、この構造のためです。

TUAK は Milenage と暗号コアが完全に異なるため、万一 AES 系に問題が見つかった場合の保険としての意味も持ちます。AUTHENTICATE コマンドの動作、OP/OPc の詳細、SQN 再同期の仕組みは AKA認証詳解で掘り下げます。


5. 5Gでの進化 — 5G AKA

5G では AKA の骨格(RAND/AUTN/RES、K、f1〜f5)はそのままに、TS 33.501 で 2 つの強化が入りました。

1 つ目はホームネットワークによる認証結果の確認です。4G までは、ローミング先(在圏網)が認証の成否を判断していました。5G AKA では端末の応答が **RES***に拡張され、在圏網(SEAF)はそのハッシュ値 HRES* を HXRES* と照合し、さらにホーム網(AUSF)が RES* そのものを XRES* と照合します(TS 33.501 §6.1.3.2)。ローミング先が「認証に成功した」と偽ってもホーム網が検証できる構造です。

2 つ目は加入者識別子の秘匿です。従来は IMSI が平文で無線区間を流れる場面があり、IMSI キャッチャーによる追跡の温床でした。5G では永続識別子 SUPI をホーム網の公開鍵で暗号化した SUCI を送ります。厳密には、この SUCI 計算は AKA 本体ではなく認証開始前の識別子提示の仕組みですが、USIM が関与する 5G セキュリティの重要な柱です。詳細は 5G時代のSIMで扱います。


まとめ

  • SIM 認証の土台は、USIM と事業者(AuC/ARPF)だけが共有する秘密鍵 K(128/256 ビット)。K は外部に一切出ない。

  • 認証はチャレンジレスポンス方式。ネットワークが RAND を送り、USIM が K で計算した RES を返し、XRES と照合される。

  • AKA は相互認証。USIM も AUTN(SQN・AMF・MAC)を検証し、正規のネットワークかどうかを確かめる。

  • AKA は認証と同時に暗号鍵 CK/IK を生成する「認証と鍵合意」のプロトコル。

  • f1〜f5 の中身は事業者選択制で、3GPP の実例アルゴリズムが Milenage(AES ベース、OP/OPc)と TUAK(Keccak ベース、TOP/TOPc)。

  • 5G AKA では RES* によるホーム網での認証確認と、SUCI による加入者識別子の秘匿が加わった。

「秘密鍵を耐タンパデバイスに閉じ込め、チャレンジレスポンスで証明する」— この原則は 2G から 5G まで一貫しています。SIM が 30 年以上モバイルネットワークの信頼の起点であり続けている理由は、この設計のシンプルさにあります。


参考規格

  • 3GPP TS 33.102 — 3G Security; Security architecture

  • 3GPP TS 33.501 v19.6.0 — Security architecture and procedures for 5G System

  • 3GPP TS 31.102 v19.4.0 — Characteristics of the USIM application(§6 Security features)

  • 3GPP TS 35.205〜35.208 — Specification of the MILENAGE Algorithm Set

  • 3GPP TS 35.231 v19.0.0 — Specification of the TUAK algorithm set

おわりに

弊社では「LibeSIM」として、SM-DP+やMVNO回線、eIM(eSIM IoT Remote Manager)、eUICC、IPA/LPAのご提供を行っております。 ご興味がございましたら、デモやPoC等行っておりますので、ぜひお問い合わせください。

https://common-creation.com/service/libesim

比嘉 叶

コモン・クリエーション株式会社

シニアマネージャー

eSIM Tech Partner「LibeSIM」のサービス開発と、SIMアプレット・SGP.32関連の受託開発のプロジェクトマネジメントを担当。ソフトウェア開発会社で約10年間、システムの開発とプロジェクトマネジメントに従事し、要件定義から開発・インフラ構築・顧客折衝までを一貫して手がける。