Meta暗号方式
分散と合成
本ソフトの特徴
- メタ暗号化とは、暗号化したいファイルを、1つでも複数でも、「複数に分割(注1)し、複数の方式/複数の鍵(注2)で暗号化し、複数のファイルに結合(注3)」します。作成したファイルを分散して保存しやすくするためです。
- 独自の暗号/復号exeも使用可能です(注4)。ユーザー自身での鍵生成も、当方(注5)での生成も可能です。
- 暗号化したファイル群から、一部のファイルのみ復元できるように、パスワードで制限できます。
- パスワードには、Unicode文字(日本の漢字・平仮名・片仮名・等)と半角文字を使用できます。お気に入りの小説の一節はいかがでしょうか。パスワードは、QRコードに変換し、紙に印刷して管理します。紙で保存すれば、第三者が電子的に読み取ることはできません。また、QRコードであれば、たくさんの文字数でも、入力ミスはほとんどなくなります。
メタ暗号での「分散」と「復元」について
通常の暗号関連では、平文を暗号文にすることを「encode」、暗号文を平文にすることを「decode」といいます。メタ暗号では、メタ「encode」のことを「分散」、メタ「decode」のことを「復元」とよびます。
動作概念
分散
- 図1のように各Groupに登録したファイル群を、Group毎にAファイルにまとめ、ランダムな長さに区切ります(Bファイル)。図1のGroup数は1です。
- 各Bファイルを、ランダムに選択した暗号化方式で、暗号化したCファイルに変換します。
- 暗号化したCファイルをランダムかつ、任意の容量比率になるように結合し、暗号化したDファイル群を作成します。
- 作成した個々のDファイルは、保管時は異なるストレージに格納します。送信時は異なる経路で送信します。
- 「KeyF」:パスワードで暗号化した復元exe(群)です。
復元 (分散の逆を行います。)
- Dファイルを分割し、Eファイル(Cファイル相当)とします。
- Eファイルを復元し、Fファイル(Bファイル相当)とします。
- Fファイルを結合し、Gファイル(Aファイル相当)とします。
- Gファイルより、ファイル群を抽出します。
図1 分散のイメージ
- 注1:分割した部分ごとに異なる暗号方式・異なる暗号鍵を使用します。例えば、よく使用されるRSA方式は、鍵長で強度を調整した単一の鍵を使用します。現在推奨の鍵長は「短期:3072bit 長期:15360bit(下ガイダンス参照)」で、スパコンでも解読に数十年かかるとされていますが(同参照)、量子コンピューターだと瞬時に解読できる可能性があります。しかし、例えば2部分を鍵のみが異なるRSA方式で暗号化して結合した場合、結合部分を特定できなければ、解読はできません。つまり、切り分ける場所、暗号方式と鍵、全てを同時に解読しなければなりません。区切り位置特定×暗号解読の処理は、計算量が莫大になり、強度が飛躍的に増します。
「暗号鍵設定ガイダンス」:44頁図7参照
- 注2:複数の暗号化方式を使用するのは、DESのように、解読方法が発見されることがあるからです。しかし、1暗号方式を解読できても、異なる方式が混在すればより安全になります。
- 注3:オンラインストレージを使用する場合、通常は暗号化します。ストレージの管理者は、保管しているファイルを技術的には読めるからです。しかし、ファイルを分割し、部分ごとに異なるストレージに保管すれば、暗号を破られても、ファイル全体を読むことはできません。
ファイルにまとめる場合でも、各部分をランダムに並べることで、簡単な転置暗号となります。また、分割部分が判りにくいことは、暗号方式の特定が難しくなります。第三者には、分割結果できるファイル数がわかりません。また、ダミーデータも使用します。これらを合わせると、どこまで解析すればよいか判らなくなります。「木の葉は木の葉に隠す」のイメージです。
- 注4:RSAの様な公開鍵暗号方式は、公開する以上方法を秘匿できないため、解読に必要な演算量(鍵長)で暗号強度を調整します。公開しない条件で自分専用の独自暗号化プログラムを使用することで、一般には解読できない暗号を作成することが可能です。当サイトからダウンロードできる暗号化プログラムも参考にしてください。
- 注5:「当方」とは、「分散.exe/復元.exe」の作成者を指します。「https://metacipher.jp」から連絡して下さい。
本書で使用している知的財産権について
- 「QRコード」はデンソーウェーブの登録商標(第4075066号)です。
- 「Windows」はマイクロソフト コーポレイションの登録商標(第4395963号)です。
- 「Visual Studio」はマイクロソフト コーポレイションの登録商標(第4206921号)です。
- 「Visual C++」はマイクロソフト コーポレイションの登録商標(第4343862号)です。
- 「Visual Basic」はマイクロソフト コーポレイションの登録商標(第4194067号)です。
- 「.NET Framework」は米国Microsoft Corporationの米国および他国における登録商標または商標です。
- 「Unicode」はUnicode, Inc.の国際登録商標(国際登録番号:1230817)です。