
2018年より、こんなものにお付き合いいただき誠にありがとうございます。ハッシュを開発することになるとは、思いませんでした。
SORA:ブロックチェーン L1本体 SORA
SORA2:耐量子(耐ASIC)暗号論的ハッシュ関数 SORA2
耐量子(耐ASIC)暗号論的ハッシュ関数 SORA2
耐量子(耐ASIC)暗号論的ハッシュ関数 SORA2 は、個人認証や暗号鍵のメッセージなどの暗号分野でお気軽に利用可能となるために調整を継続しております。特に、量子コンピュータのグローバーのアルゴリズム対策を重視しております。なにとぞよろしくお願いいたします。
設計について
1からの「完全オリジナル設計」です。このため、他のハッシュ関数からお借りしたロジックはありません。耐量子を意識するため、出来る限りビット操作(例えばf関数、rotation関数、Ch、Sigmaなど)などを「逆に」取り除いています。このような操作はスーパーポジションで構築しやすい性質があり、例えばSHA-256は量子ビット数 2500 程度でスーパーポジションまで辿り着けるという報告があります。なお、このような情報に付随しがちな「スーパーポジション構築=グローバーのアルゴリズム実行」ではない点にご注意ください。それとはまったく別の概念です。
SORAのL1(v3.99.15)に、SORA2のハッシュ値を確認できるsora2hashコマンドを実装しました。以下は、その様子です。helloなどのハッシュ値が出力されており、近い文字列(hello1)でもしっかりビット反転している点も合わせて出力されております。

SORA2 可変ビット長の出力をサポート
このため、256ビットはもちろん、160ビットや2048ビットなどを簡単に組み込むことができます。
以下、SORA2とSHA-256を比較した結果です。
まず、SORA2です。
=== Avalanche Analysis SORA2 ===
Pairs : 5000
Hash bits : 256
Mean distance : 127.937600 (expected 128.000000)
Variance : 64.904106 (expected 64.000000)
Chi^2 (Binom 0.5) : 53.842686 dof=114 approx p=1.000e+00
— Per-bit flip rate (first 10 bits, MSB-first) —
bit[0] : 0.507000
bit[1] : 0.504200
bit[2] : 0.492600
bit[3] : 0.496800
bit[4] : 0.498000
bit[5] : 0.489800
bit[6] : 0.491000
bit[7] : 0.496800
bit[8] : 0.503200
bit[9] : 0.499400
次に、SHA-256です。
=== Avalanche Analysis SHA-256 ===
Pairs : 5000
Hash bits : 256
Mean distance : 128.147600 (expected 128.000000)
Variance : 64.191414 (expected 64.000000)
Chi^2 (Binom 0.5) : 67.881298 dof=114 approx p=9.998e-01
— Per-bit flip rate (first 10 bits, MSB-first) —
bit[0] : 0.504600
bit[1] : 0.495600
bit[2] : 0.505600
bit[3] : 0.500000
bit[4] : 0.501800
bit[5] : 0.510600
bit[6] : 0.504800
bit[7] : 0.500600
bit[8] : 0.513000
bit[9] : 0.504400
PQC+耐量子ハッシュ関数対策で、量子耐性を完了します

PQC実装済みブロックチェーンを表したイラストです。それを量子(量子アリス)からみています壁がありません。イラスト内の大きい鍵がPQCです。そこだけ付けても量子は迂回してきます。

PQCならびに耐量子暗号論的ハッシュ関数実装済みブロックチェーンを表したイラストです。量子(量子アリス)からみています。今度は、しっかり壁があります。この壁が耐量子暗号論的ハッシュ関数です。量子グローバーから内部を護ります。これで「量子耐性実装済みブロックチェーン」となります。
