
暗号文は、元の可読な情報(平文)が暗号化によって不可読な形式に変換されたものです。平文は暗号化前の人が読める生データを指します。暗号文と平文は、暗号化と復号のプロセスによって相互に変換される関係です。
暗号文は「ロックされたファイル」に例えられます。ロック機構は暗号化アルゴリズム、鍵は暗号鍵です。正しい鍵があれば暗号文を解除し、元の平文を取り出せます。
ブロックチェーンでは、オンチェーンデータはデフォルトで公開されています。この透明性の高い環境でプライバシーを守るため、平文はオンチェーンに記録する前や分散型ストレージに保存する前に暗号文へ暗号化されることが一般的です。
暗号文は、暗号化アルゴリズムと暗号鍵の組み合わせによって生成されます。アルゴリズムは暗号化の手順を定義し、鍵は機械が読める「パスワード」の役割を果たします。正しい鍵がなければ復号はできません。
共通鍵暗号では、暗号化と復号に同じ鍵を使います—部屋の出入りに同じ鍵を使うイメージです。代表的なアルゴリズムにはAESがあり、ファイルやメッセージの高速暗号化に適しています。
公開鍵暗号では、公開される公開鍵と秘密に保持する秘密鍵の2種類の鍵を使います。他者の公開鍵で暗号化したデータは、その秘密鍵でのみ復号できます。これは受取人だけが開封できる手紙のような仕組みです。RSAや楕円曲線暗号などが一般的です。
ステップ1:用途を定義します。プライベートメッセージには高速な保護のため共通鍵暗号を使い、鍵の安全な共有には受取人の公開鍵で鍵自体を暗号化します。
ステップ2:安全な乱数(コンピュータのサイコロのようなもの)で鍵と初期化ベクトル(IV)を生成し、予測不可能性を確保します。
ステップ3:暗号化を実行します。平文をアルゴリズムに入力し、鍵とIVを使って暗号文を生成します。改ざん検知にはAES-GCMなどの認証付き暗号モードを選択します。
暗号文は、公開ネットワーク上で内容を隠すために利用され、ウォレット通信、プライバシー決済、投票、データ保存などで一般的です。
Gateのような取引所サイトにアクセスする際、ブラウザはTLSでリクエストを暗号文化し、インターネット上で送信します—アカウント情報や操作内容を盗聴から守ります。
プライバシー決済プロトコルでは、受取人や金額を暗号文にエンコードし、証明機構で取引の正当性を機密情報を明かさずに検証します。
DAOでは匿名投票の一時的な保護に暗号文が使われます。投票はオンチェーンで暗号文として記録され、集計時のみ復号されることで、事前の影響を防ぎます。
NFTのプライベートメタデータは、IPFSや分散型ストレージ上で暗号文として保存されることが多く、保有者や認可された当事者だけが高解像度画像やアンロック可能なコンテンツを閲覧できます。
暗号文は「可逆的」で、正しい鍵があれば平文に復号できます。一方、ハッシュは「不可逆的な指紋」で、比較はできても元のデータを復元できません。
デジタル署名は、送信元(「誰が送ったか」)と完全性(「改ざんされていないか」)を証明します。通常、署名はメッセージのハッシュに対して作成され、高速かつ堅牢です。署名と暗号文は連携することが多く、平文をハッシュ化して署名した後に暗号文化して送信したり、暗号文自体に署名して転送時の真正性を保証する場合もあります。
オンチェーンでの署名検証には、平文またはそのハッシュへのアクセスが必要です。暗号文のみが保存されている場合、スマートコントラクトは内容を直接解釈できないため、署名管理や復号はアプリケーション層で行う必要があります。
暗号文はスマートコントラクトのストレージにバイトデータとして直接保存できますが、大容量ファイルはガス代が高額になる場合があります。一般的な方法は、暗号文ファイル自体をIPFSやArweaveに保存し、コンテンツ識別子や検証に必要な情報のみをオンチェーンに残すことです。
オンチェーン保存の際は、将来の復号のために必要なメタデータ(使用アルゴリズム、モード、IV、バージョンなど)を添付し、鍵はオンチェーンに保存せず、安全かつオフチェーンで管理することが重要です。
鍵の配布にはハイブリッド暗号を利用できます。まずランダムに生成した共通鍵でコンテンツを暗号化し、その鍵を受取人の公開鍵で暗号化することで、高速かつ安全な配布を実現します。
安全な暗号文は、信頼性の高いアルゴリズム、強力な乱数、正しい手順に依存します。以下のステップを守りましょう:
ステップ1:十分に監査されたアルゴリズムとモード(例:AES-256)を選択し、改ざん検知のため認証付きモード(GCMなど)を使用します。
ステップ2:鍵やIVには暗号学的に安全な乱数源から強力な乱数を生成し、タイムスタンプや予測可能な値は避けます。
ステップ3:鍵導出。パスワードから鍵を作る場合はKDF(Argon2やPBKDF2など)を使い、十分なイテレーションとメモリ使用量で堅牢な鍵に変換します。
ステップ4:平文を暗号文に暗号化し、復号時の完全性検証のため認証タグを生成します。
ステップ5:将来の非互換性を避けるため、アルゴリズム、IV、タグ、バージョンなどの明確なメタデータとともに暗号文をパッケージ化します。
ステップ6:鍵は安全に保管・バックアップし、秘密鍵はオフラインで分散して保管します。鍵をウェブサーバーやログにアップロードしないこと。
ステップ7:サンプルデータで複数のプラットフォームやライブラリで十分にテストし、互換性を確認します。
暗号文は内容を隠し、ゼロ知識証明は詳細を開示せずに何かを証明します。両者はしばしば組み合わせて使われ、暗号文で機密データを保存し、証明でコンプライアンスを担保します。
例えばプライバシー決済では、取引詳細を暗号文で記録し、ゼロ知識証明で金額範囲や残高、二重支払いの有無を証明します。スマートコントラクトは証明のみを検証し、実際の暗号文を読む必要がないため、プライバシーと正当性を両立できます。
暗号文は直接内容を読めなくしますが、タイムスタンプや操作パターンなどのメタデータから手がかりが漏れる場合があります。より強力なプライバシーにはミックスネットやコミットメント、ゼロ知識証明の併用も検討してください。
主なリスクは鍵管理と実装の詳細に起因します。鍵を失うとデータが復号できず、鍵が漏洩すると暗号文は平文同様に読まれてしまいます。
よくある原因は、弱い乱数による鍵やIVの推測、ECBなど安全性の低いモードによるパターンの露出、生パスワードをKDF処理せず鍵として使用、フロントエンドのログやエラーレポートへの鍵の記録、誤ったエラー処理によるパディングオラクル攻撃などです。
金融セキュリティには特に注意が必要です。取引情報を暗号化しても、オンチェーンの操作から関連性が明らかになる場合があります。秘密鍵はウェブサイトや第三者ツールにアップロードせず、復号や署名はできる限りオフラインで行いましょう。
プライバシー用途の拡大に伴い、暗号文はコミットメントやゼロ知識証明、しきい値鍵などの技術と連携し、プライバシーとコンプライアンスを強化していきます。
ポスト量子セキュリティについては、RSAや一部の楕円曲線方式など、現在広く使われている公開鍵アルゴリズムが量子コンピュータの進展で脅威にさらされています。AESなどの共通鍵暗号は鍵サイズを増やすことで耐性が向上します。業界は格子ベースの鍵交換や署名など、ポスト量子暗号技術への移行を進めています。2025年時点で、ブロックチェーンやウォレットエコシステムはこれら技術の評価段階にあり、旧来と新技術の併存期間が必要となります。
暗号文はアルゴリズムと暗号鍵で可読データを不可読な形式に変換し、公開ネットワークで安全な送信・保存を可能にします。暗号文と平文の関係、ハッシュとの違い、署名と暗号化の連携を理解することは、Web3での効果的なプライバシー管理の基礎です。実務では、堅牢なアルゴリズム、強力な乱数源、認証付きモード、厳格な鍵管理を選び、ゼロ知識証明などと組み合わせてプライバシーとコンプライアンスを最大化しましょう。
平文は元の人が読める情報を指し、暗号文はそれを暗号化した不可読な文字列です—暗号化アルゴリズムで生成されます。例えば、秘密鍵は平文ですが、暗号化されると暗号文になります。暗号文の利点は、他者に傍受されても内容が隠されるため、プライバシーが守られることです。
Web3では資産が秘密鍵(多くの場合暗号文で保存)に直接紐づいています。暗号文が漏洩や解析されると、ハッカーは即座に暗号資産を移動でき、損失は不可逆です。従来のインターネットアカウントのようにパスワードをリセットできず、秘密鍵の漏洩は永続的な脅威となります。
いいえ。共通鍵暗号は暗号化と復号に1つの鍵を使いますが、公開鍵暗号は暗号化用の公開鍵と復号用の秘密鍵(または逆)を使います。この一方向性により、公開鍵が露出しても秘密情報は復号されません。
安全な暗号文には3つの条件があります:1)堅牢な暗号化アルゴリズム(例:AES-256)、2)十分に複雑で自分だけが知る鍵、3)安全な保管場所(ハードウェアウォレットなど)。複数のプラットフォームで鍵を使い回していないか定期的に確認してください—これはよくある脆弱性です。
はい—暗号文が漏れると、過去の全取引や保有状況が追跡・分析され、プライバシーが完全に露出します。ハッカーがあなたになりすまして他者を詐欺したり、連絡先をターゲットにするなど、さらなる被害も生じます。


