9月3日、John D. Cookが「New RSA number factored」と題した記事を公開した。この記事では、Eric Luが260桁(862ビット)のRSA数「RSA-260」の因数分解に成功したこと、そして現行のRSA暗号への影響について詳しく紹介されている。以下に、その内容を紹介する。
RSA-260とは何か
Eric LuがX(旧Twitter)でアナウンスしたところによると、彼は260桁(862ビット)の合成数「RSA-260」の因数分解に成功した。RSA-260は2つの大きな素数 p と q の積であり、その具体的な値は以下の通りだ。
N = 22112825529529666435281085255026230927612089502470015394413748319128822941402001986512729726569746599085900330031400051170742204560859276357953757185954298838958709229238491006703034124620545784566413664540684214361293017694020846391065875914794251435144458199
p = 4397328654844826923795068102505872571721883526553349659561256924505973939597593482272505698004801207988043088656411102133523080581
q = 5028695206842569864686141618253083416610081090075366674776775706538324961364412200138116378509733307971876652984898985905923678379
RSA数(RSA numbers)とは、RSA暗号の安全性を測る「チャレンジ問題」として提示された合成数群だ。RSA暗号の安全性は「大きな数の因数分解が困難である」という前提に基づいており、これらの数を分解できた場合の影響を評価するための指標として機能している。
なお、命名規則は紛らわしい点がある。「RSA-_n_」の n は桁数(digits)のこともあれば、ビット数のこともある。たとえばRSA-768はビット数を指すため、RSA-260(260桁)より実際には小さい数だ。RSA-260はこれまでに因数分解されたRSA数の中で最大のものとなる。
現行のRSA暗号への影響は?
「862ビットのRSA鍵が破られた」と聞くと不安になるかもしれないが、現実の影響は限定的だ。
記事中の計算式によると、862ビットのRSA鍵のセキュリティレベルは74ビットに相当する。これは「74ビット鍵の共通鍵暗号と同等の強度」という意味だ。
一方、現在推奨される最小RSA鍵長は2048ビットであり、そのセキュリティレベルは107ビットに達する。
セキュリティレベルは対数スケールで評価される。つまり、1ビット増えるごとにブルートフォース攻撃の必要コストが2倍になる。2048ビットのRSA鍵を破るには、RSA-260の因数分解と比べて 2³⁴ ≒ 10¹⁰ 倍(約100億倍) の計算量が必要になる計算だ。
実務上、2048ビット以上のRSA鍵を使っているシステムに対して、今回の成果が直接的な脅威をもたらすわけではない。
量子コンピュータはどうか
記事では量子コンピュータ(CRQC:Cryptographically-relevant quantum computer、暗号に関与できる量子コンピュータ)についても言及がある。現時点では「暗号に関与できる量子コンピュータ」は存在しない。量子コンピュータ自体は実在するものの、現状では21すら"ズルなし"では因数分解できないレベルとされており、RSA暗号への実質的な脅威にはなっていない。
RSA暗号と因数分解の関係
補足として、記事では「大きな素数を効率よく因数分解できればRSAは破れる」と述べつつ、「因数分解できなくてもRSAを破る方法が存在する可能性はある」とも指摘している。ただし、これは理論上の余地の話であり、詳細は別記事に譲られている。
今回のRSA-260因数分解は、暗号理論の研究コミュニティにとって意義ある成果だ。ただし、現在一般に使われている2048ビット以上のRSA鍵との間には依然として10¹⁰倍という巨大な計算量の隔たりがあり、実用上の安全性はただちに揺らぐものではない。
詳細はNew RSA number factoredを参照していただきたい。