今回は現在の暗号化技術であるRSA暗号の課題とその解決策となるCRYSTALS Dilithiumについて説明するよ。
RSA暗号の課題に入る前に量子コンピュータについて簡単に説明します。
量子コンピュータとは
現在、米中などを中心に量子コンピュータ(Quantum computer)の開発競争が激化しています。
量子コンピュータとは、「量子重ね合わせ」や「量子もつれ」といった量子力学の現象を利用して、従来型のコンピュータ(古典コンピュータ)が解くことができなかった複雑な計算を行うコンピュータのことです。
- 量子の重ね合わせ
量子は波と粒子の性質を同時に持っている。
観察していないときは波の性質を持ち、観測すれば粒子の性質を持つ。 - 量子もつれ
2個以上の重ね合わせ状態にある量子が相関を持ち、1つを観測すると、他方の状態も確定する。
古典コンピュータでは解くのに時間を要する問題も、短時間で解ける可能性があるため、新薬の開発やAIの性能向上などに期待されています。
しかし、量子コンピュータが普及するとデメリットもあります。その一つが現在の暗号化技術が破られる可能性があることです。
半導体技術を基礎とした古典コンピュータは半導体の微細化の限界が見えてきていて、「ムーアの法則」の終焉が近づいていることも、開発競争激化の要因になっているよ。
現在の暗号化技術:RSA暗号とは
二者間が離れた場所で通信を行うとき、その中間で第三者に傍受される(盗み見される)可能性があります。
個人情報やクレジットカードの情報など、秘密情報をやり取りするときは決められたルールに従い暗号化し、仮に第三者に傍受されても分からなくする必要があります。その暗号化技術の一つにRSA暗号があります。
暗号化したデータは受け取り側で解読する必要がありますが、これを復号化と言います。この作業をするにあたり、公開鍵、秘密鍵と言うものを用います。
まず、暗号化する手順としては以下の通りです。ここでは暗号を作って送る側をAさん、暗号を復号化する側をBさんとします。
- Bさんが秘密鍵を作成します。
具体的には2つの大きな数の素数p, qを秘密鍵とします。
p, qは復号化するための鍵でAさんには送りません。
【例】p = 5, q = 11(例は説明を簡易化するため小さい素数とします) - Bさんは公開鍵として2つの整数n, eを用意します。
・nはpとqをかけたもの
・eはp-1, q-1と互いに素な数
【例】n = 55, e = 3 - Bさんは秘密鍵は送らずに公開鍵をAさんに送ります。
- Aさんは暗号化するデータ(文字列など)をコンピュータで扱える数字へ変換します。
なお、暗号化されていないデータのことを平文と言います。
【例】( * . * ) ⇒ 40 42 46 42 41 - Aさんはその数字をe乗し、nで割った余りを暗号化したデータ(暗号文)とします。
【例】35 03 41 03 06 - AさんはBさんへ暗号文を送ります。
次に、復号化する手順としては以下の通りです。
- Bさんはp-1とq-1の最小公倍数Lを求めます。
【例】L = 20 - Bさんは一次不定方程式 d・e – y・L = 1の自然数解(d, y)のdを求めます。
【例】自然数解(7, 1) ⇒ d = 7 - Bさんは暗号文をd乗してnで割った余りを求めます。
【例】35 03 41 03 06 ⇒ 40 42 46 42 41 - 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年まで規格化される見通し。