鍵長(Key Length) - 暗号化全般

暗号化全般 | IT用語集

鍵長とは

鍵長(Key Length)は、暗号鍵のビット数を表し、暗号の強度に直接関係します。鍵長が長いほど、ブルートフォース攻撃(総当たり攻撃)に対する耐性が高くなりますが、計算コストも増加します。

鍵長を1ビット増やすと、鍵の候補数は2倍になります。つまり、128ビット鍵には2^128 ≈ 3.4×10^38通りの候補があり、現在の技術では総当たりでの解読は事実上不可能です。

アルゴリズム別の推奨鍵長

アルゴリズム 最小 推奨 備考
AES 128ビット 256ビット 量子耐性を考慮すると256推奨
RSA 2048ビット 3072-4096ビット 2030年以降は3072以上推奨
ECDSA/ECDH 256ビット 384ビット P-256, P-384曲線
Ed25519 256ビット 256ビット 固定長、効率的
Diffie-Hellman 2048ビット 3072ビット Logjam対策

セキュリティレベルの等価性

異なるアルゴリズムの鍵長を比較するための等価なセキュリティレベル:

セキュリティビット | 対称鍵   | RSA       | ECC
128               | AES-128  | RSA-3072  | P-256
192               | AES-192  | RSA-7680  | P-384
256               | AES-256  | RSA-15360 | P-521

AIエンジニアとしての実体験

AIモデルの保護システムを設計する際、データの機密性に応じて適切な鍵長を選択しました。医療AIプロジェクトでは、規制要件(HIPAA)を満たすためAES-256を採用しています。

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
import os

def encrypt_with_aes256(data: bytes) -> tuple:
    """AES-256-GCMで暗号化"""
    key = os.urandom(32)  # 256ビット = 32バイト
    nonce = os.urandom(12)
    
    cipher = Cipher(
        algorithms.AES(key),
        modes.GCM(nonce),
        backend=default_backend()
    )
    encryptor = cipher.encryptor()
    ciphertext = encryptor.update(data) + encryptor.finalize()
    
    return key, nonce, ciphertext, encryptor.tag

# RSA鍵長の確認
from cryptography.hazmat.primitives.asymmetric import rsa

def generate_rsa_key(key_size: int = 4096):
    """指定したビット長でRSA鍵を生成"""
    private_key = rsa.generate_private_key(
        public_exponent=65537,
        key_size=key_size,
        backend=default_backend()
    )
    return private_key

自社サーバー運用への応用

TLS設定での鍵長確認

# サーバー証明書の鍵長確認
openssl x509 -in cert.pem -noout -text | grep "Public-Key"

# リモートサーバーの鍵長確認
echo | openssl s_client -connect example.com:443 2>/dev/null | \
  openssl x509 -noout -text | grep -E "Public-Key|RSA"

# SSH鍵の鍵長確認
ssh-keygen -l -f ~/.ssh/id_rsa.pub

適切な鍵長の選択ガイドライン

  • 短期データ(数日〜数ヶ月):最小推奨値で十分
  • 中期データ(数年):推奨値を使用
  • 長期データ(10年以上):最大値または次世代アルゴリズムを検討

関連ブログ記事

最新動向(2026年)

ポスト量子暗号への移行

量子コンピュータの脅威に備え、NISTはより長い鍵長を持つポスト量子暗号アルゴリズム(Kyber、Dilithium)を標準化しました。これらは従来より大きな鍵サイズを使用します。

RSA鍵長の再評価

計算能力の向上により、NISTとBSIは2030年以降のRSA-2048の使用を非推奨としています。RSA-3072または楕円曲線暗号への移行が推奨されています。

トラブル事例と対策

⚠️ 古い1024ビットRSA鍵の使用

問題:1024ビットRSAは既に安全ではない

対策:最低2048ビット、推奨3072ビット以上のRSA鍵を使用

⚠️ 過剰な鍵長によるパフォーマンス低下

問題:必要以上に長い鍵を使用して処理が遅くなる

対策:ECCを使用すれば短い鍵長で同等のセキュリティを実現可能

権威あるリソース

関連用語

この用語についてもっと詳しく

鍵長に関するご質問や暗号設計のご相談など、お気軽にお問い合わせください。