本文へスキップ

ChaCha20とは?

ちゃちゃにじゅう

ChaCha20とは、高速かつ安全なストリーム暗号アルゴリズムで、TLSやVPNなどの通信暗号化に広く採用されています。

ChaCha20とは、Djb(Daniel J. Bernstein)が設計したストリーム暗号アルゴリズムです。2008年に公開されたSalsa20をベースに改良されており、256ビットの鍵と96ビットのナンスを使用して擬似乱数ストリームを生成し、平文とのXOR演算で暗号化を行います。

ChaCha20の主な特徴は以下のとおりです。

  • 高速性:AESハードウェア支援がないデバイス(モバイル・組み込み機器等)でもソフトウェアのみで高速に動作する
  • 安全性:タイミング攻撃に対して耐性が高く、キャッシュタイミング攻撃を受けにくい設計
  • シンプルな構造:加算・XOR・ビットローテーションのみで構成される「ARX構造」を採用
  • 並列処理:ブロックを並列に計算できるため、マルチコアCPUでの高速化が容易

実際の利用では、メッセージ認証コードのPoly1305と組み合わせたChaCha20-Poly1305という認証付き暗号(AEAD)として使われることがほとんどです。Googleが2013年にTLS通信へ採用して注目を集め、その後RFC 8439として標準化されました。現在はTLS 1.3の必須暗号スイートの一つとして、HTTPS通信やWireGuardなどのVPNプロトコルに広く使用されています。

使い方・例文

「このサーバーはAESが遅い古いモバイル端末向けに、ChaCha20-Poly1305を優先的にネゴシエーションするよう設定している」のように、TLS設定やセキュリティ要件の文脈で登場します。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語