テキスト暗号化&復号化
AES-256-GCM暗号化、100%ブラウザ内。
Web Crypto APIを介してAES-256-GCMを使用します。各暗号化でランダムな96ビットIVと128ビットソルトが生成されます。パスワードはPBKDF2(100,000回反復、SHA-256)を介して導出されます。
使い方
- 暗号化または復号モードを選択します。
- テキストとパスワードを入力します。
- アクションボタンをクリック · 結果が下に表示されます。
- 復号するには、暗号化された出力を貼り付けて同じパスワードを使用します。
よくある質問
この暗号化は安全ですか?
はい。AES-256-GCMは軍用品質の暗号化です。PBKDF2鍵導出(100k回の反復)と組み合わせると、強力な保護を提供します。ただし、セキュリティはパスワードの強度に依存します。
パスワードを回復できますか?
いいえ。すべてはブラウザ内で実行されます。テキストやパスワードを見ることはできません。パスワードを失うと、暗号化されたテキストは回復できません。
出力の形式は?
暗号化された出力は、ソルト、IV、暗号化されたテキストを含むBase64文字列です。復号するには、ツールにそれを貼り付けるだけです。
暗号化をクリックしたとき実際に何が起きているか
AESのような対称暗号は暗号化と復号に同じ鍵を使用する。つまり鍵を持つ者はデータをロックもアンロックもできるため、使用上の課題全体が「送信者と受信者はどうすれば鍵を漏らさずに共有できるか」という1つの問いに集約される。このツールの答えは「you handle that yourself」(自分で対処せよ)であり、別の信頼できるチャンネルでパスワードに合意し、両者が同じ文字列をここに貼り付けるというものだ。
このツールはブラウザーのネイティブWeb Crypto APIを通じて4つのステップを実行する:
- パスワードを鍵に伸長する。パスワードは短くエントロピーの低い文字列で、AES-256鍵は32バイトの高エントロピーのランダムデータだ。ツールはパスワードをPBKDF2-HMAC-SHA-256で100,000回のイテレーション(RFC 8018で規定)と128ビットのランダムソルトを通じて処理する。ソルトにより同じパスワードを再利用しても毎回異なる鍵が生成され、レインボーテーブル攻撃を無効化する。イテレーション数はブルートフォース推測をイテレーション単位で遅くする。
- 新鮮なノンスを生成する。AES-GCMのNIST推奨長である96ビットのランダムIVが
crypto.getRandomValuesを通じて生成される:ブラウザーがTLSに使用するものと同じ暗号学的に安全な乱数源だ。 - AES-256-GCMで暗号化する。平文がUTF-8バイトにエンコードされ、AES-256のGalois/Counter Mode(GCM)に通される。これにより暗号文と128ビットの認証タグが生成される。
- パッケージ化してBase64エンコードする。ソルト・IV・暗号文+タグが1つのバイナリblobに連結され、メール・チャット・ASCII文字列を想定するあらゆる場所に安全に転送できるようBase64エンコードされる。
なぜAES-256-GCMなのか
AES(Advanced Encryption Standard)はNISTが2000年に15候補の公開競争から選んだ対称暗号だ。受賞したデザインはベルギーの暗号学者Joan DaemenとVincent Rijmenによるもので、2001年11月26日にFIPS PUB 197として標準化された。NISTは3つの鍵サイズ(128・192・256ビット)を承認し、NSAはすべてをSECRETデータに承認、AES-256はTOP SECRETにも承認している。20年以上の公開精査を経ても適切に実装されたAESに対する実用的な攻撃はまだ存在しない。暗号自体は事実上解読不可能であり、セキュリティの議論は鍵管理とパスワード強度に完全に移行している。
AESのようなブロック暗号は128ビットの固定サイズブロックを1つ暗号化するだけなので、実際のメッセージにはブロックをつなぎ合わせる暗号化モードが必要だ。モードは暗号と同じくらい重要だ。悪名高い古いデフォルトのECB:各ブロックを独立に暗号化するためパターンが漏れる。暗号化後もTuxの形がわかる有名な「ECBペンギン」画像がその標準的な教訓例だ。古い多くのオンライン「AES」ツールは今もECBを使用しているが、このツールは使用しない。
GCM(Galois/Counter Mode)はMcGrewとViegaが設計し、NISTがSP 800-38D(2007年11月)で標準化した。カウンターモード暗号化とガロア体認証タグを組み合わせるAEAD(Authenticated Encryption with Associated Data)モードであり、1回の操作で機密性と完全性を提供する。暗号化された出力の1バイトが反転されても復号はガーベジな平文を返す代わりにエラーを発生させる。TLS 1.2とTLS 1.3が使用しているのと同じモードだ。現代のインターネット暗号技術の真の主力モードだ。
パスワードは鍵ではない
AES-256鍵は32バイトの均一なランダム性だ。ユーザーのパスワード(強いものでも)は短く、ほとんど印刷可能なASCIIで、辞書パターンに集中する。補助なしにパスワードを直接AESに入力することはできない。その補助がパスワードベースの鍵導出関数(KDF)だ。PBKDF2・scrypt・Argon2が現代のコードでよく見られる3つだ:
- PBKDF2(RFC 8018)、最初のもの。HMACの疑似ランダム関数を何度も繰り返す。CPUでは速いがメモリハードではない:GPUやASICはPBKDF2ハッシュを通常のコンピューターでのイテレーション数が示唆するよりはるかに速くクラックできる。このツールがPBKDF2を使用するのは、Web Crypto APIがネイティブに公開している唯一のパスワードKDFだからで、Argon2とscryptには追加のJavaScriptやWebAssemblyが必要になる。
- scrypt(RFC 7914、2016年、Colin Percivalによる)はメモリハード性を追加した:攻撃者に推測ごとに大きなRAMブロックを割り当てることを強制し、安価な並列ハードウェアを無効化する。
- Argon2id(RFC 9106、2021年)、2015年のPassword Hashing Competition優勝者。OWASPの現在の第一推奨。メモリハードでサイドチャネル耐性がある。
率直な注意点:100,000回のPBKDF2イテレーションは元のRFCのフロアである1,000回を大きく上回るが、PBKDF2-SHA-256に対するOWASPの2026年現在のガイダンスである600,000回は下回る。トレードオフは低速なスマートフォンでの暗号化時間で、600,000イテレーションでは低価格のAndroidデバイスでの鍵導出に顕著な遅延が生じ始める。高リスクの長期的な秘密には、補償のためにより長いパスワードを選ぶか、通常はより強力なパラメーターでArgon2idを使用する専用パスワードマネージャーを使用すること。
ソルトとIV:似ているようで異なる役割
- ソルトは鍵導出への入力だ。パスワード→鍵のマッピングを暗号化ごとに固有にすることで、盗まれた暗号文が一般的なパスワード鍵の事前計算テーブルを使ってクラックされることを防ぐ。ソルトは秘密である必要はなく、ただユニークで予測不可能であればよい。
- IV/ノンスは暗号モードへの入力だ。AES-GCMの場合、96ビットのカウンター開始点だ。(鍵、メッセージ)ペアごとにユニークでなければならない。GCMで再利用すると壊滅的で、攻撃者がGHASH鍵を復元し任意の暗号文を偽造できる。ツールはすべての暗号化で
crypto.getRandomValuesから新鮮なランダムIVを生成し、このリスクを回避する。
このツールを使うべき場合と使うべきでない場合
適切なツールである場合:
- 信頼できないチャンネル(メール・Slack・SMS・ノートアプリ)を通じて単一の秘密メッセージを共有する必要があり、かつパスワードを渡せる別の信頼できるチャンネル(電話・対面・Signalチャット)がある場合。
- クラウドドキュメントやノートアプリに貼り付ける前にローカルでスニペットを暗号化し、プロバイダーが侵害されても内容が読み取れないようにしたい場合。
- 口頭でパスワードを合意したパートナーとのワークフローに「封緘された封筒」を添付する必要がある場合。
不適切なツールである場合:
- 受信者と事前共有の秘密も帯域外チャンネルもない場合。暗号文と同じチャンネルでパスワードを送信しても意味がない。暗号文を読める者はパスワードも読める。これが公開鍵暗号が解決するための古典的な鍵配布の鶏と卵の問題だ。
- 前方秘匿性が必要な場合。SignalとTLS 1.3はセッションごとに異なるエフェメラル鍵を生成するため、今日の漏洩が過去のメッセージを露出しない。単一の固定パスワードは反対の特性を持つ。パスワードを知った者は過去に暗号化したすべてのメッセージを復号できる。
- 誰が暗号化したかを証明する必要がある場合。共有パスワードを使ったAESはパスワードの所持を証明するが、署名ではない。デジタル署名にはPGP・age・S/MIMEを使用すること。
- 大規模または多数の受信者向けに暗号化する場合。受信者ごとに個別に共有されたパスワードが必要で、ローテーションが面倒だ。非対称ツール(age・PGP)とSignalスタイルの鍵サーバーの方が適している。
有用なメンタルモデル:パスワードを使ったAESは、暗号の組み合わせを共有するための電話通話と組み合わせた荷物用南京錠のデジタル版だ。電話通話が信頼できるなら完璧に機能する。自動的に鍵交換を行いDouble Ratchetプロトコルで前方秘匿性を提供するSignalのようなエンドツーエンド暗号化メッセージングの代替にはならない。
パスワードの「十分に強い」とはどの程度か?
暗号自体は解読不可能なので、スキームのセキュリティ全体がパスワードにかかっている。関連する数学はエントロピーだ:H = L × log₂(N)(Lは長さ、Nはランダムに選ぶ文字セットのサイズ)。実例:
- ランダムな小文字8文字 → 約37ビット。現代のGPUで数時間でクラック可能。
- 大文字小文字混在・数字・記号含む8文字 → 約52ビット。現代の速度で数時間〜数日。
- 大文字小文字混在・数字・記号含む12文字 → 約79ビット。近い将来、現実的な攻撃予算を超える。
- 7,776語のDicewareリストからランダムな6単語 → 約78ビット。ランダムな12文字とほぼ同等のセキュリティだが記憶ははるかに容易。
人間が選んだパスワードは劇的に弱い:NISTガイダンスで引用された研究では平均約40ビットと推定されており、辞書攻撃が純粋なブルートフォースを上回る理由だ。NIST SP 800-63Bの記憶された秘密に関する現在のアドバイス:最低8文字・少なくとも64文字を許可・構成ルールを課さない(Password1!のような予測可能なパターンに誘導する)・定期的なローテーションを要求しない・既知の漏洩パスワードリストと照合する。目標は「長く・覚えやすく・一度も漏洩していない」こと。実際に覚えられる4〜6語のランダムパスフレーズは、無理やり作った8文字の「複雑な」パスワードを常に上回る。
他の暗号化ツールとの比較
- TLS / HTTPSはあなたとサーバーの間の転送を暗号化する。サーバー自体は届いたデータをすべて読み取れる。盗聴者の問題を解決するが、サーバーの問題は解決しない。
- Signal / WhatsApp / iMessageは自動鍵交換と前方秘匿性を持つ完全なエンドツーエンド暗号化だ。両方を解決するが、両者が同じアプリを使う必要がある。
- PGP / ageは非対称で、最初に共有秘密を必要とせず相手の公開鍵で暗号化する。鍵配布を解決するが歴史的に使いにくかった。
ageはモダンなミニマリスト代替だ。 - OSレベルのディスク暗号化(FileVault・BitLocker・LUKS)はAES-XTSを使って単一デバイスのデータを保存時に暗号化する。異なる脅威モデル:デバイス盗難から保護するが、ネットワーク傍受は保護しない。
- パスワードマネージャーは、ベンダーのバックエンドを通じて暗号文を同期するが読み取れない暗号化ボールト内でAES-GCM(または類似)と強力なKDF(現在はArgon2idが一般的)を使用する。
パスワードベースのテキスト暗号化ツールはこのファミリーで最も専門化されていないメンバーであり、アイデンティティ・転送・ストレージに関する意見を持たない純粋な暗号技術だ。そのシンプルさが魅力で、まさにパスワードを使ったAES-256だけが必要な場合に適切なツールだ。
さらなる質問
これはエンドツーエンド暗号化ですか?
ある意味ではそうだ。暗号化はブラウザー内で完全に行われ、Absolutoolは平文もパスワードも見ない。Signalのようなメッセージングプロダクトが使う厳密な意味ではそうではない:Signalはさらに自動的な非対称鍵交換とアイデンティティバインディングを提供するため、パスワードを共有するための別の信頼できるチャンネルが不要だ。このツールはそれらの追加機能なしに暗号化だけを行うため、パスワードの受け渡しが使用者の責任になる。
「パスワードを忘れた」場合の回復機能はありますか?
いいえ、設計上。ツールはパスワードを見ることがなく、何も保存しない。パスワードを失った場合、暗号化されたテキストは回復不可能だ。パスワードマネージャーに保存するか、物理的なメモに書き留めること。
暗号化された出力がランダムなBase64のように見えるのはなぜですか?
それがまさに正体だからだ。ソルト・IV・暗号文+認証タグが1つのバイナリblobに連結され、印刷可能なASCIIを想定するシステム(メール・JSON・クエリ文字列)で安全に転送できるようBase64エンコードされる。3つのコンポーネントはすべて復号時に必要なため一緒にパッケージされる。ツールはblobを貼り付けると再度それらを取り出す。
AES-256はどこかで違法ですか?
大衆向け暗号技術は2026年現在、事実上世界中のすべての消費者向け製品で広く合法だ。米国の1990年代のCrypto Warsは行政命令13026(1996年)と2000年の大衆市場向け緩和で終了した。特定の禁輸先(イラン・北朝鮮・シリア・キューバ)と強力な暗号技術に関して独自の輸入または使用規制を持つ少数の国(中国・ロシア・ベトナム・サウジアラビアなど)は、これらの管轄区域でツールを使用する場合は現地の法律に照らして確認する価値がある。
サーバーに何か送信されますか?
いいえ。Web Crypto APIはブラウザーでネイティブに動作し、crypto.subtleはブラウザーがTLSに使用するものと同じ暗号ライブラリ(ChromeではBoringSSL、FirefoxではNSS、SafariではCommonCrypto)にコールする。デバイスから何も出ない。ページはHTTPSも要求しており、これはブラウザーによって強制される。Web CryptoはネットワークがJavaScriptを実行前に置き換えることを防ぐためセキュアなコンテキストでのみ利用可能だ。