VisualCryptography CipherLab

視覚暗号の仕組みを2枚のシェアで学べる体験ツールです

基礎知識

視覚暗号(Visual Cryptography)は、画像を2枚のノイズのようなシェアに分割する技術です。単独のシェアからは何も読み取れませんが、2枚を重ね合わせると秘密の画像が浮かび上がります。

暗号化(シェア生成)

画像を2枚のランダムなシェアに分割します。

画像ファイルを選択 ? 暗号化したい画像を選択してください
? 画像を2枚の秘密分散画像に変換

シェア A ? 1枚目の分散画像(単独では無意味)

シェア B ? 2枚目の分散画像(単独では無意味)

復号(重ね合わせ)

2枚のシェアを重ねて秘密を復元します。

? 2枚を重ねて秘密画像を表示

乱数のわな(予測できる乱数は危険)

視覚暗号の「単独のシェアからは何もわからない」は、パターンを予測不能な乱数で選ぶことが前提です。ここでは、わざと予測できる擬似乱数(線形合同法、シード固定)でシェアを作り、片方のシェア(B)とシードだけから秘密が復元できてしまう様子を見せます。

秘密画像

シェア B(単独ではノイズ)

復元された秘密(攻撃の結果)

このツールの「暗号化」タブは crypto.getRandomValues(予測不能)を使うので、攻撃者はシードを知りようがなく、この復元はできません。予測できる乱数(Math.random やシード固定の擬似乱数)を秘密分散に使ってはいけない、という教訓です。

理論(研究)

視覚暗号(Visual Cryptography)は、1994年に Moni Naor と Adi Shamir によって提案された暗号方式です。

通常の暗号は「暗号文+鍵→復号アルゴリズム→平文」という流れを取りますが、視覚暗号では 復号に計算処理を必要とせず、人間の目そのものが復号器 となります。

基本的な仕組み(このツールは2×2に拡張)

秘密画像の1ピクセルを、2×2の4サブピクセル(うち2つが黒)のブロックに置き換えます。黒2つの置き方は6通りあり、ピクセルごとに乱数で1つ選びます。

白いピクセルの場合(両シェアに同じブロック):

シェアA: ■□ / □■ シェアB: ■□ / □■ 重ね合わせ: ■□ / □■ → 黒2つ(灰色に見える)

黒いピクセルの場合(シェアBは反転):

シェアA: ■□ / □■ シェアB: □■ / ■□ 重ね合わせ: ■■ / ■■ → 黒4つ(黒く見える)

👉 白は「黒2つ(灰)」、黒は「黒4つ(濃い黒)」になります。この濃さの差が、重ねたときに秘密として見えます。

  • 人間の目で復号
    PCやアルゴリズム不要。シェアを重ねるだけで秘密が復元できる。
  • 単独シェアは情報を持たない
    各シェアのブロックは、白でも黒でも6パターンに一様に散らばる。予測不能な乱数(crypto.getRandomValues)でパターンを選ぶので、1枚だけでは元が白か黒か手がかりが残らない。逆に Math.random のように予測できる乱数だと、片方のシェアと乱数列から秘密を復元できてしまう。
  • ピクセル拡張
    秘密画像の1ピクセルを複数のサブピクセルに置き換えるため、シェアが大きくなる。
  • 白黒画像向け
    基本は2値画像。グレースケールやカラー対応は拡張手法が必要。

VSSS = Visual Secret Sharing Scheme(視覚復号型秘密分散法)

(2,2) スキーム → (k,n) スキーム

2枚で復元する方式から、n枚のうちk枚以上で復元できる方式へ一般化。

秘密分散共有との融合

暗号理論の秘密分散法と同様、複数人がシェアを持ち寄らないと復元できない。

拡張スキーム

  • グレースケール・カラー対応(ビットプレーン分解、EVCS)
  • 効率的な非拡張型スキーム
  • 誤り訂正機能付きスキーム

認証・アクセス制御

2要素認証や入場確認に利用可能。シェアを重ねると認証マークが現れる。

偽造防止・透かし

チケット、商品ラベル、証明書に仕込み、真偽判定に活用。

セキュア情報配布

新聞・雑誌に片方のシェアを印刷、会員カードを重ねると秘密が見える。

QRコードとの融合

複数シェアを重ねると有効なQRコードが読める仕組み。BEC防止やユーザー認証に応用。

教育用途

「複数人で秘密を守る」仕組みを直感的に体験でき、暗号教育に適する。

本ツールは、「生成AIで作るセキュリティツール100」プロジェクトの一環として開発されました。

このプロジェクトでは、AIの支援を活用しながら、セキュリティに関連するさまざまなツールを100日間にわたり制作・公開していく取り組みを行っています。

本ツールの構成

  • 基礎知識 — 視覚暗号の基本概念と特徴を解説
  • 暗号化 — アップロードした画像を2枚のシェアに分離
  • 復号 — 2枚のシェアを重ね合わせ、目視で秘密を確認
  • 理論 — グレースケールやカラー拡張、(k,n) スキーム、応用例を紹介

プロジェクトの詳細については、こちらのページをご覧ください。