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 が鍵を電波で送り、事業者側が照合する」ことになりますが、これでは盗聴された瞬間に鍵が漏れます。そこで実際の認証はこう動きます。
ネットワークが「ランダムな数字(問題)」を SIM に送る
SIM は秘密鍵を使ってその問題から「答え」を計算し、答えだけを返す
ネットワーク側も同じ計算をしておき、答え合わせをする
答えは問題(乱数)ごとに毎回変わるため、盗聴して答えを再利用する攻撃は成立しません。この方式をチャレンジレスポンス認証と呼びます。銀行のワンタイムパスワードに近い発想です。
さらに 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等行っておりますので、ぜひお問い合わせください。
比嘉 叶
コモン・クリエーション株式会社
シニアマネージャー
eSIM Tech Partner「LibeSIM」のサービス開発と、SIMアプレット・SGP.32関連の受託開発のプロジェクトマネジメントを担当。ソフトウェア開発会社で約10年間、システムの開発とプロジェクトマネジメントに従事し、要件定義から開発・インフラ構築・顧客折衝までを一貫して手がける。