【新暗号技術】CRYSTALS Dilithiumとは

カヲル
カヲル

今回は現在の暗号化技術であるRSA暗号の課題とその解決策となるCRYSTALS Dilithiumについて説明するよ。

RSA暗号の課題に入る前に量子コンピュータについて簡単に説明します。

量子コンピュータとは

現在、米中などを中心に量子コンピュータ(Quantum computer)の開発競争が激化しています。

量子コンピュータとは、「量子重ね合わせ」や「量子もつれ」といった量子力学の現象を利用して、従来型のコンピュータ(古典コンピュータが解くことができなかった複雑な計算を行うコンピュータのことです。

  • 量子の重ね合わせ
    量子は波と粒子の性質を同時に持っている。
    観察していないときは波の性質を持ち、観測すれば粒子の性質を持つ。
  • 量子もつれ
    2個以上の重ね合わせ状態にある量子が相関を持ち、1つを観測すると、他方の状態も確定する。

古典コンピュータでは解くのに時間を要する問題も、短時間で解ける可能性があるため、新薬の開発AIの性能向上などに期待されています。

しかし、量子コンピュータが普及するとデメリットもあります。その一つが現在の暗号化技術が破られる可能性があることです。

カヲル
カヲル

半導体技術を基礎とした古典コンピュータは半導体の微細化の限界が見えてきていて、「ムーアの法則」の終焉が近づいていることも、開発競争激化の要因になっているよ。

現在の暗号化技術:RSA暗号とは

二者間が離れた場所で通信を行うとき、その中間で第三者に傍受される(盗み見される)可能性があります。

個人情報やクレジットカードの情報など、秘密情報をやり取りするときは決められたルールに従い暗号化し、仮に第三者に傍受されても分からなくする必要があります。その暗号化技術の一つにRSA暗号があります。

暗号化したデータは受け取り側で解読する必要がありますが、これを復号化と言います。この作業をするにあたり、公開鍵秘密鍵と言うものを用います。

まず、暗号化する手順としては以下の通りです。ここでは暗号を作って送る側をAさん、暗号を復号化する側をBさんとします。

  1. Bさんが秘密鍵を作成します。
    具体的には2つの大きな数の素数p, qを秘密鍵とします。
    p, qは復号化するための鍵でAさんには送りません。

    【例】p = 5, q = 11(例は説明を簡易化するため小さい素数とします)
  2. Bさんは公開鍵として2つの整数n, eを用意します。
    ・nはpとqをかけたもの
    ・eはp-1, q-1と互いに素な数

    【例】n = 55, e = 3
  3. Bさんは秘密鍵は送らずに公開鍵をAさんに送ります。
  4. Aさんは暗号化するデータ(文字列など)をコンピュータで扱える数字へ変換します。
    なお、暗号化されていないデータのことを平文と言います。

    【例】( * . * ) ⇒ 40 42 46 42 41
  5. Aさんはその数字をe乗し、nで割った余りを暗号化したデータ(暗号文)とします。

    【例】35 03 41 03 06
  6. AさんはBさんへ暗号文を送ります。

次に、復号化する手順としては以下の通りです。

  1. Bさんはp-1とq-1の最小公倍数Lを求めます。

    【例】L = 20
  2. Bさんは一次不定方程式 d・e – y・L = 1の自然数解(d, y)のdを求めます。

    【例】自然数解(7, 1) ⇒ d = 7
  3. Bさんは暗号文をd乗してnで割った余りを求めます。

    【例】35 03 41 03 06 ⇒ 40 42 46 42 41
  4. Bさんはコンピュータで扱えるように数字に変換したデータを元に戻します。

    【例】40 42 46 42 41 ⇒ ( * . * )
カヲル
カヲル

Aさんは暗号化はできるけど、秘密鍵を知らないため、自分では復号化できないよ。

もし、悪意がある第三者が復号化する場合は、nを素因数分解してp, qを求める必要があります。

上の例では小さい数の素数の掛け算のため、簡単に素因数分解できますが、大きな数の素数の場合は簡単にはいきません。これがRSA暗号が成立する根拠となります。

しかし、量子コンピュータを使うことで、この大きな数の素因数分解が可能になるとされています。

新暗号技術:CRYSTALS Dilithiumとは

CRYSTALS Dilithiumとは、米政府のセキュリティー基準などを定める米国立標準技術研究所(NIST)が22年7月に採用を発表し、米IBMなどが提唱した暗号化規格です。

素数を使ったRSA暗号は量子コンピュータで解けるようになるとされていますが、CRYSTALS Dilithiumは量子コンピュータでも解くことが難しい格子問題を用いたものになります。

CRYSTALS Dilithiumも秘密鍵と公開鍵があります。

CRYSTALS Dilithiumの秘密鍵はデジタル署名を生成するために使用され、CRYSTALS Dilithiumの公開鍵はデジタル署名の検査に使用されます。

CRYSTALS Dilithiumは事実上の世界標準として、24年までに規格化される見通しです。

カヲル
カヲル

格子を用いた暗号は、格子問題が効率的に解けないという計算量的な過程をもとに、安全性を高めたものだよ!

日本においては、凸版印刷と国立研究開発法人の情報通信研究機構(NICT)がこの暗号技術を用いたICカードの試作品を22年8月中に完成させる予定です。

なお、凸版印刷はICカードの国内大手で、25年には電子カルテやクレジットカードなどへの導入を目指す予定となっています。

まとめ

最後に本記事の内容をまとめて終わりにしたいと思います。

  • 現在、米中を中心に世界で量子コンピュータの開発競争が激化している。
  • 現在の暗号化技術である素数を用いたRSA暗号は量子コンピュータで解かれる可能性がある。
  • 量子コンピュータでも解くのが難しいCRYSTALS Dilithiumは、24年まで規格化される見通し。