METEORA SYSTEM Co., Ltd. は,渡邊の[非可換algorithmによるBlockchain耐量子化技術] について, License partner の募集を開始しました. Cryptography の歴史を変えてくださる方との出会いを心待ちにするとともに, 候補者の方との積極的な discussion を歓迎しております.
前回の記事では、ブロックチェーンがその設計故に抱える致命的な問題点を指摘し、特に鍵そのものの存在ががブロックチェーンの利点であると同時に一つの方法を除いて克服できない弱点であることを考察しました。
この問題を解決するには、システムはオンラインにもオフラインにも鍵データを持たない一方、署名をするときには鍵データを利用できる、というなんとも不思議なシナリオを実行しなければなりません。
そして、非可換アルゴリズムがそれを可能にすることをご紹介しました。この非可換アルゴリズムこそが多変数暗号アルゴリズムという発明の根幹となっているわけです。
この記事では非可換アルゴリズムがどのようにして先述の不思議なシナリオを実行するのかをご紹介したいと思います。
まず前提として、非可換アルゴリズムの定義は以下の3つです。
①:パスワードの登録を求めない。
②:秘密鍵データは生成と同時に「燃やされる」。
③:この実装は量子耐性である。
上記三つの定義すべてをカバーする現実的なアルゴリズムが非可換アルゴリズムです。
非可換アルゴリズムは暗号処理 K1() と復号処理 K2() が互換ではありません。ここで K1 , K2 はどちらも確率変数を表します。平文 P について暗号処理を行うことを K1(P) と表し、次に復号処理を行うことを K2(K1(P)) と表します。ここでは単に K1K2 と言う表現を用います。
公開鍵を暗号鍵にして平文 P からコード C を作り、秘密鍵を復号鍵にして平文 P に戻した場合も、その逆の場合も、結果は同じ P に戻ります。
K1K2 = K2K1
これが“可換アルゴリズム“です。ところが、“非可換アルゴリズム“では、イコールの部分が不等号になります。
K1K2 ≠ K2K1
この非可換アルゴリズムにおいては、暗号処理 K1() に相当する関数を Y() で表します。そして Y() は独特な形式で表されます。
Y()≡<Y1(), Y2(), Y3()>
この出力に3個のコード IDs(n=3) が現れます(Fig.6:)。
このうち、(n-1) 個の IDs が漏洩したとして、その漏洩 IDs から秘密情報を計算するのは極めて現実的ではありません。なぜなら、計算は確率計算になり秘密情報に当たる確率は 1/2^256 になるためです。
これは量子コンピュータの内部ではなく、ネットでサイコロ投げを 2^256 回行う計算です。一方、復号処理 K2() に相当する関数として「衝突関数」と名付けられた関数があります。
これも独特な形式 Y-1() で表されます。
Y-1()≡<Y1-1(), Y2-1(), Y3-1()>
このように、非可換アルゴリズムにおいては公開鍵に相当する鍵はありません。ただ、公開鍵に代わる利便性として、(n-1) 個のコード IDs が漏洩したとしても、衝突という事象そのものが総当たり攻撃を想定したものなので衝突関数 Y-1() の計算を騙すことはできません。
この意味で衝突関数 Y-1() は公開鍵に相当します。同じく 関数 Y() が秘密鍵に相当します。
これが非可換アルゴリズムの存在と特色です。
ここに、暗号関数に相当する関数 Y() 、及び、復号関数に相当する衝突関数 Y-1() を引用し、Satoshi Nakamoto の New Privacy Model に適用してみましょう。
関数 Y() を Private keys に適用して、 keys データを「燃やします」。鍵データがどこにも存在しなくなるので、情報の流れ自体が消えます。
つまり、アクセスを制限する対象が存在しないといことです。
Private key データを燃やしたあと、関数 Y() の出力にコード ID が3個現れます。これでkey データはあらゆるメモリから消える一方、署名タスクだけがメモリに残ります。Fig.6のように、境界防衛線が左に移るということです。
上の 3 個のコード{ID1, ID2, ID3}が署名タスクを起動します。
すなわち、ユーザが ID1 を持ち、事業者が ID2 を持ち、さらに信頼のおける第3者が ID2 を持ち、それぞれが署名に同意したときにのみ、署名タスクを起動します。そして、署名を実行後、直ちに鍵データは削除されます。
これまでの常識に依れば、ユーザのアカウントを管理するのはサービス提供者です。それゆえ、パスワードを用いる限り鍵の情報の流れを断ち切れないことは先に述べたとおりです。
これがブロックチェーンの運用時に生じる致命的な問題点でした。この問題を非可換アルゴリズムが解決できます。
この実装とは、どんなソリューションでしょうか。
どんなパスワードも存在しない。すなわちアカウントも存在しない。敢えて言うならば、ユーザと事業者と信頼のおける第三者の合意プロトコルがアカウントとなるでしょう。
ID パスワードを保持するような DB が存在しない。この様子を先の Fig.7 に表現しました。
ハッカー(クラッカー)は量子コンピュータを駆使して公開鍵データから秘密鍵データを盗むでしょう。秘密鍵データさえ手に入れば、電子コインを盗むのは容易ですし、トランザクションの正当性も改ざんするので誰もそれを止める者がいないだけでなく、たとえば、不正な送金は頻繁に見落とされるでしょう。
しかし、Fig.6 では、鍵データはオンラインに存在しないし、オフラインにも存在しないことを示しました。そして、悪意ある攻撃者が署名チェーンを更新する(or 電子コインを盗む)方法は、 Fig.7 に示した手段に準拠するしかなくなります。
彼らがやっと手に入れた秘密鍵データですが、Fig.7 に対しては、その使い道が無い、すなわち完璧な量子耐性です。
したがって、この非可換アルゴリズムには寿命が無いことがわかります。NIST による標準化の実現を待つ理由が無い、ということです。
©︎2021 METEORA SYSTEM Co., Ltd. and Kosaka advisory office