13
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【超速報】Apple CryptoKit の仕様を超解説 - めちゃPQCですやん...

13
Last updated at Posted at 2025-09-17

こんにちは、GMOコネクトの暗号おじさんです!
あ、菅野(かんの)でございます。

いやね、昨日は忙しかったのに 隙間時間にiOS26へのアップデートを行うなど、自分でも何やってんだかってなったわけです。

その感極まった調査については、次の記事で確認できるので読んでいただけると嬉しいです。

いやー、iOS26からPQC対応したよね〜で終わっておけば良かったのに、「Apple製品での暗号実装」ってどうするんだい?という疑問が頭の中にこだましちゃったので、懲りずに調査してみました。

image.png
https://developer.apple.com/documentation/cryptokit

噂には聞いていましたが、Apple CryptoKitという暗号利用に関する仕組みをAppleさんが公式にご提供しております。
そんなApple CryptoKitを整理すると〜

  • Appleが公式に提供する暗号ライブラリ
    • iOS / macOS / watchOS / tvOSなどApple製品のOSに標準搭載
  • Swift ネイティブで設計され、安全に暗号を扱える API を提供
    • 開発者向けの暗号実装の入口的位置付け
  • これからApple製品で暗号処理を行うならCryptoKitを使うのが基本路線
    • CommonCrypto や Security.framework など過去の低レベル API は互換性維持のため残されているが、新規開発にはCryptoKitが推奨!?

Apple CryptoKit 暗号機能一覧を気合いを入れて読み解きました! その結果は次のとおり。

現行暗号(Traditional Cryptography)

ハッシュ関数(Hash Functions)

  • SHA-256 - 128ビットセキュリティ / FIPS 180-4準拠
  • SHA-384 - 192ビットセキュリティ / FIPS 180-4準拠
  • SHA-512 - 256ビットセキュリティ / FIPS 180-4準拠
  • MD5 ※ 非推奨(Insecureコンテナ内)、後方互換性のみ
  • SHA-1 ※ 非推奨(Insecureコンテナ内)、後方互換性のみ

共通暗号(Symmetric Encryption)

  • AES-GCM(認証付き暗号化)

    • AES-GCM-128 - 128ビットセキュリティ
    • AES-GCM-192 - 192ビットセキュリティ
    • AES-GCM-256 - 256ビットセキュリティ
  • ChaCha20-Poly1305(ストリーム暗号)

    • ChaCha20-Poly1305

楕円曲線暗号(Elliptic Curve Cryptography)

  • NIST標準曲線

    • P-256 ECDH - 鍵共有 / 128ビットセキュリティ
    • P-256 ECDSA - デジタル署名 / 128ビットセキュリティ
    • P-384 ECDH - 鍵共有 / 192ビットセキュリティ
    • P-384 ECDSA - デジタル署名 / 192ビットセキュリティ
    • P-521 ECDH - 鍵共有 / 256ビットセキュリティ相当
    • P-521 ECDSA - デジタル署名 / 256ビットセキュリティ相当
  • 代替曲線

    • Curve25519 (X25519) - 鍵共有 / 128ビットセキュリティ
    • Ed25519 - EdDSA署名 / 128ビットセキュリティ

メッセージ認証コード(Message Authentication Codes)

  • HMAC-SHA2
    • HMAC-SHA256 - SHA-256ベースのHMAC / 256ビットセキュリティ
    • HMAC-SHA384 - SHA-384ベースのHMAC / 256ビットセキュリティ以上
    • HMAC-SHA512 - SHA-512ベースのHMAC / 256ビットセキュリティ以上

鍵導出関数(Key Derivation Functions)

  • HKDF-SHA2
    • HKDF-SHA256 - RFC 5869準拠、Extract-and-Expand方式
    • HKDF-SHA384 - RFC 5869準拠、Extract-and-Expand方式
    • HKDF-SHA512 - RFC 5869準拠、Extract-and-Expand方式

暗号学的擬似乱数生成機能

  • SecureBytes - 暗号学的擬似乱数生成器(CSPRNG)

耐量子計算機暗号(Post-Quantum Cryptography)

鍵カプセル化メカニズム(Key Encapsulation Mechanism)

  • ML-KEM-768
    • FIPS 203標準(2024年8月13日標準化)
    • 旧名:CRYSTALS-Kyber
    • レベル3セキュリティ(192ビットセキュリティ相当)
    • 公開鍵: 1,184バイト、秘密鍵: 2,400バイト、暗号文: 1,088バイト
  • ML-KEM-1024
    • FIPS 203標準(2024年8月13日標準化)
    • 旧名:CRYSTALS-Kyber
    • レベル5セキュリティ(256ビットセキュリティ相当)
    • 公開鍵: 1,568バイト、秘密鍵: 3,168バイト、暗号文: 1,568バイト

デジタル署名

  • ML-DSA-65
    • FIPS 204標準(2024年8月13日標準化)
    • 旧名:CRYSTALS-Dilithium
    • レベル3セキュリティ(192ビットセキュリティ相当)
    • 公開鍵: 約1,952バイト、秘密鍵: 4,032バイト、署名: 3,309バイト
  • ML-DSA-87
    • FIPS 204標準(2024年8月13日標準化)
    • 旧名:CRYSTALS-Dilithium
    • レベル5セキュリティ(256ビットセキュリティ相当)
    • 公開鍵: 2,592バイト、秘密鍵: 4,896バイト、署名: 4,627バイト

PQ / Tハイブリッド構成

  • X-Wing
    • ML-KEM-768 + X25519のハイブリッド構成(流行りの「PQ/Tハイブリッド構成」)
      • 現行暗号とPQCのどちらかが安全であれば鍵共有機能として安全な構成
    • 2025年9月17日現在、IETFにて標準化中
    • 32バイト共有秘密、公開鍵: 1,216バイト、暗号文: 1,120バイト

振り返り

現行暗号だけではなく、PQCに関しても色々実装されていてテンションぶち上げです!笑

細かく知りたいぞって方は、Apple CryptoKitからご確認いただけたらと!!


最後に、GMOコネクトでは研究開発や国際標準化に関する支援や技術検証をはじめ、幅広い支援を行っておりますので、何かありましたらお気軽にお問合せください。
あと、一緒に働きたいぞ!という方がいたら、SNS経由でもよいので声かけてくれたら嬉しいです。

お問合せ: https://gmo-connect.jp/contactus/

13
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?