題名:暗号について

五郎の入り口に戻る

日付:1999/3/25

この文章について

暗号化

暗号解読

共有鍵暗号

共有鍵暗号の問題点

公開鍵暗号

電子署名

電子署名の方法

実例:PGP

電子すかしの目的について

電子すかしの具体的な方法 

電子透かしに要求される性質

電子透かしの関連技術・応用

終わりに

参考文献


電子すかし(透かし)の目的について

この「すかし」なる言葉は誰が考えたのかしらないが、私から見るとちょっと妙な気がする。実世界で一番頻繁に出会うすかしはお札のすかしである。日にすかさなくてもその位置に何かあることは分かる。日にすかせば何がはいっているかはっきりわかる。ただその複製は困難だから(お札のコピーをとってもすかしはうまくコピーできない)複製をやる気をうしなわせる、といった効果を持つものだ。

しかしこの「電子すかし」なるものは、ユーザーから見るとそこにすかしが入っている事を認識することはできない、といった性質を持っている。(そうでなくては困るのだが)おまけに元のデジタルデータをコピーすれば透かしもそのままコピーされる。透かしが消えているから「これは複写された模造品だ!」とは言えない。逆に不正なコピーを作ろうとする人間はなんとか透かしを消し去ろう、と努力するはずだ。

 

電子すかしは、インターネットなどのネットワークの発展にともないデジタルで表された音楽、画像、動画などの著作権保護に使用されると言う。これはどういうことか?

デジタルデータのすばらしいことにひとつに、劣化に対して強い、ということがあげられる。VTRを3度コピーすれば画質はほとんど鑑賞に堪えられなくなるくらいに劣化するが、デジタルデータであれば(何か特殊なしかけがある、とか機器の故障があるとかいうのでなければ)何度コピーしようが品質に変化はないのだ。

私のように自分でデジタルデータを生産するよりは、鑑賞する方に回っている限りこの性質は大変好ましいものとなるが、一旦生産する(言葉が悪ければ創造といってもいいが)する側に回るとこの性質はたまったものではない。苦心惨憺して作り上げた音楽や映像であるから、一人がお買いあげいただけるたびに正当な料金をいただきたいものだ。ところがコピーが簡単にとれることになると、そうした料金の回収は不可能となる。

こうした論議はカセットの普及や、家庭用VTRが普及し始めたときにも結構まきおこったのだろう。詳しい経緯はしらないが、「まあ複写したものはだんだん品質が劣化していくから、ちゃんとした品質を求める人は製品をちゃんと買ってくれるよ」ということでちょんになったのではなかろうか。ところがデジタルに関してはこの「まあまあ」という論法は通用しないのである。コピーできないのはせいぜいCDのジャケットくらいなもので、私のようにジャケットに何の価値も見いださない人間にとては、それが工場から出荷されて店頭にならび、そこから購入されたCDから流れる音楽だろうが、そこから不法にコピーされてHDから流れている音楽だろうが音楽としての価値は全く同一なのである。

さてこの問題にどうやって対処すればいいのだろうか。

 

インターネット上のコンテンツをあさってみると、デジタルの不正コピー防止には大きくわけて二つのアプローチがあるようだ。一つはデジタル情報のコピーそのものを防止する方法。現在販売されている機器では、デジタル同士のコピーは一世代までと規制されている。例えばCD→MDのダビングは、デジタルのままで行えるが、そこからさらにMDにコピーしようとすると一度アナログに変換してから行われるので、情報の劣化はさけられない。このコピーの制限はSCMS(Serial Copy Management System)なる機器でなされている、、とあるが仕組みについてはよく知らない。

さてこうしたハードウェアによるコピーの防止は我々のような一般消費者を相手にしている限り十分な効果を持つようだ。しかし意図的にコピーを行おうとする相手に対しては、おそらく無力である。実際そのようなコピー防止システムの抜け道を発見してしまうエンジニアの数は我々が思っているより遙かに多いのだ。(先ほどのSCMSをくぐり抜ける機器もちゃんとインターネット上で販売されている)

 

となると別の方法が必要となる。二つ目のアプローチは、デジタルデータになんらかの形の除去が困難な識別子をもたせ、それによって、或人間なり組織がそのデジタルデータの正当な所有者か否かを識別する方法である。これはいわばMicrosoftのWord5.0だか6.0がやっていたような方式だ。このアプリケーションはフロッピからインストールされるのだが、インストールの最後に必ずシリアル番号と所有者名を入力させる。そしてその情報はインストール元のフロッピまで書き換えてしまうのだ。

仮に私がMicrosoft Word 5.0を購入して、Name : Goro Otsubo Organization : Stanford Universityと入力したとする。すると仮に誰かが私のMicrosoft Word 5.0のフロッピーを「盗み出して」インストールを行っても、彼のコンピュータ上のWordには必ず Owner's Name : Goro Otsubo Organization : Stanford Universityと表示されてしまう。(フロッピ上には私の名前が刻まれてしまっているからだ)従って仮に私のフロッピーを盗んだ人間が不正にWord 5.0を使用していたとして、Microsoftが何らかの理由でその人間に対し、容赦ない措置を執ろう、と考えた場合「あんたのコンピュータ上にあるWordはGoro Otsuboから不正に入手したもんだ」と証明できるわけである。(この場合盗まれた私の責任がどうなるか知らないが)

さてかくのごとくこの2番目の「コピー防止方法」は大変手間がかかる。コピーを防止するのではなくて、コピーされたデータの正当な所有者でない、ということが明らかにできるだけだからである。不正コピーを行った人間に対してはいちいち見つけて訴えなくてはならない。いまだかつてMicrosoftが個人の違法コピーを訴えたことを聞いたことがないことからして、たぶん悪質な企業による組織的な再販売などを防止する事が目的ではないか。

さてMicrosoftの違法コピー防止方法はこちらにおいておいて、電子すかしとはこのコピー防止の為の2番目のアプローチを音や画像などのデジタルデータに対して実現しようとするものである。

 

電子すかしの具体的な方法 

前述した違法コピー防止方法は、付加的な情報(先ほどの例だったら私の名前と所属組織だ)をフロッピー上の特定の部分に書き込むことで実現されている(と思う)。しかしながらこの方法ではその付加情報が記録されている場所を見つけられてしまえばアウトである。改竄を防ぐ方法はない。そんな面倒なこと、、と思うかもしれないが、世の中にこうしたことの発見に異常な執念を燃やす人間は多いし、もし私が勝手に想像した「コピー防止手段が目的としている対象=悪質業者による大量コピー」という図式が正しいとすれば、そのような業者は付加情報記述場所の発見に十分な時間も人もかけられるに違いない。

となると別の方法が必要となる。

参考文献3)によれば、電子すかしに対する説明は以下のようになっている。

「電子透かしは、デジタル画像、ビデオ、音声の中に隠されたメッセージです。透かしはコンテンツ自身に統合されます。従って、記憶容量が増えることもなく、また新しい標準フォーマットの必要性もありません。」

ひらたく言うと電子透かしは、デジタルデータそのものの中に人間が認識できない形で情報を埋め込もう、という技術である。

保護したいデジタルデータと別の部分に書き込まれた付加情報は簡単に除去されてしまう。しかしデジタルデータ自体にランダムに付加情報が埋め込まれているとしたらどうであろう。その付加情報の埋め込み方、及び発見の仕方を知っている人間には元のデータへの復元が可能である。しかしそのやり方を知らない人間はその付加情報の除去に大変な苦労をすることになる(よほど間抜けな方法で付加情報が記録されているのではないかぎり)

さてここで問題である。付加情報とは所詮後から付け加えられたデータにすぎない。元のデジタルデータからすれば雑音のようなものだ。そんなものをつけて大丈夫なのだろうか?

ありがたい人間の知覚というものはノイズを或程度許容する性質を持っている。たとえばインターネットで一般的に使用されているJPEGフォーマットで画像を記録しようと思うと、元の画像から確実に画像は変化することになる。つまり雑音が乗っているような状態になるのだ。ただ圧縮率が低い間は人間がそれに気がつかないだけだ。(圧縮率をあげていくと、この変化ははっきりとわかるようになる)電子透かしもこの人間の知覚の性質を利用し、デジタルデータの品質(人間にとっての話であるが)を損なわない範囲で付加情報を記録しているのだ。

 

言葉をずらずら並べてもわけがわからないと思うので、電子透かしの具体例として、今ではclassicとなってしまったかもしれない例を挙げよう。

前述した某所で「見えない暗号」についてのお話を伺ったときのことである。目の前にFAXで伝送したと思われるテキストデータと、白黒のイメージ写真(比較的低解像度でディザ化処理がほどこされており、ちょっとギザギザに見えるもの)を見せられた。その紙には鉛筆で「何文字のデータを記録」と書いてある。説明してくれた相手は「どこに文字があるか分かりますか?」と聞いた。確かに一枚目はテキストが書いてあるがそれは隠されている文字情報とは何の関係もないという。もう一枚の白黒写真には見たところどこに文字は見えない。

その場所にいた私の上司は「どこだ」と言った。私はそれまで伺った話でだいたい察しがついていたので、「この文字や写真の輪郭のぎざぎざですね」と言った。

最近は高品質のFAXが増えてきたが、基本的にFAXで文字や絵を送ると、どうしたって品質は落ちるし、読み取り状況やFAXの品質によっては結構ノイズの黒い点が増えたりする。一文字一文字拡大して見ると輪郭がぎざぎざになっている。この「見えない暗号」はそのぎざぎざ部分に隠されていたのだ。FAX伝送時にランダムにはいってしまったノイズのように見せかけて実は意味を持った暗号データだったのである。写真の方はディザのパターンの中に暗号が隠されていた。しかし人間がそれを見たときは自動的に「ああ。ファックスね。品質がおちるのはあたりまえ。ディザ化された写真ががたがたになるのもあたりまえ」と思い、特に変だとは思わなかったわけだ。

つまりこの方法では、デジタルデータ(ファックスで送られたデータ)自体に、ノイズやディザのぎざぎざ、という形で付加情報を記録していたわけである。そして人間の知覚は寛容であるから(相手がファックスと言うことでなおさら寛容になり)それに対して不信感を抱かなかったわけだ。

このファックス(のように見えるもの)の付加情報として著作権情報が隠されていたとしよう。不正コピーをもくろむ第3者がおそのことに気がついて著作権情報を取り除こうとしてもとてもできる相談ではない。文字データに関しては輪郭をすべてなめらかにしなくてはならないだろう。元データが文字ならばまだそれができるが、ディザ化された写真ではどれが正当なデータなのか、著作権情報なのか判別するのは、不可能に近い。

 

私がなぜこれを「Classicな例」と言うかと言えば、インターネット上にある例でこれを取り上げたものがないからだ。たぶんなんらかの理由によって今ではこの方法はあまりAttractiveでないのだろう。しかし原理自体は同じである。

さて具体例とは言いながら、やっぱり言葉でがらがら書かれてもわからないと思うので、具体的に見える画像データに電子透かしをつけた例をあげてみよう。下の写真をじっと見てほしい。

実はこの画像には"this is a pen"というデータが画面いっぱいに埋め込まれている。さてどこでしょう?

画像を縦にしたり、横にしたりしてあなたに"this is a pen"という文字が見えるとすれば、あなたは乱視か「願望が現実となって見えてしまう人」である。ではどうやれば、"this is a pen"を読むことができるのか?

この画像は白黒256階調であるから、画像の一つのドットごとに白黒の値(要するにどれだけ灰色か、ということだ)を指定する必要がある。この画像の左上の部分だけをとりだし、データがコンピュータ上のファイルでどのようになっているかをみると、こんな感じに見える。

5d

5d

5d

5d

5e

5e

5f

5f

5f

61

61

61

各升目が画面上のドットに対応し、値が、ドットごとの明るさを示している。さて"this is a pen"を埋め込んだあとの同じ箇所は、データを見ると下のように見える。

5d

5c

5d

5f

5e

5e

5e

5e

5f

60

61

61

上とほとんどいっしょだけど、ちょっと違うでしょ。さてもうちょっと細かく見て見よう。

 

一番左下の値をみると、電子透かしを入れる前は5fだ。これをコンピュータが理解するのに使用する2進法で表すと以下のようになる。下の各升目はコンピュータで扱われるデータの最小単位のビットを表している、と思ってほしい。

0

1

0

1

1

1

1

1

さて電子透かしがはいった後のデータは値は5eだから2進数で表すと以下のようだ。

0

1

0

1

1

1

1

0

違いは一番右側の値だけである。ここが今回作った「お手製簡易電子透かし」の要だ。"this is a pen"という文字をあれこれの規則に従って2進数に変換する。その結果は011001010..とかいう1と0の列になる。その列を画像の各ドットの一番下位の(上の絵では一番右側の)ビットに当てはめたのが上の画像である。埋め込む文字データの最初は0だから、最初の升目の一番下位ビットを0にする。次は1だから、隣のドットの一番下位ビットを1に、、、ってな具合だ。

さて、このように元の値が何であっても、データーを埋め込むために勝手に一番下のビットを変更している。こんなことをして大丈夫か、と思ったりもするが、元のデータとくらべて値は最大1しか違わないので、明るさが元の絵からたかだか1/256変化するだけだ。従って普通に見たのでは全然違いに気がつかない。この画像から埋め込まれた文字を取り出すときには、逆の操作を行えばよい。各ドットの一番下のビットを取り出していって、それを並べて011001010..という文字列を作る。それをまたもやあれやこれやの規則に従って変換すれば"this is a pen"のできあがりだ。

さて上記の画像にはこうした操作によって、"this is a pen"という文字を埋め込むことができたわけである。もっともこれは考え得る限り一番簡単な電子透かしの方法だから、簡単にみやぶられてしまうし、除去するのも簡単だ。その方法については後述する。

 

さて私が作ったいいかげんな例は脇に置いておいて、現実世界で静止画像でデータ埋め込みに使用されている項目の名前だけをあげておく。私にはそれぞれの名前が何を意味しているか全くわからないし、推測することもできない。ただ言葉の響きからぼんやりと想像するだけなのだが。

(1)統計的な性質を利用する方法

(2)周波数空間を利用する方法(フーリエ変換や、スペクトラム拡散だろうか)

(3)局所的な性質の統計的特異性を利用する方法(参考文献6には「近接する画素の性質が似通っている性質を利用して、近接する画素の近傍の統計的な特徴をわずかに操作することにより情報を埋め込んでやる」と書いてあるがなんのことかさっぱりわからない)

さて動画、等他のデジタルデータについてもこうした情報の埋め込みが可能である。しかしながら電子透かしは前述したように本質的に人間の知覚がノイズに対して寛容であることを利用したものだから、データの種類によって埋め込み易さに差がある。参考文献6によれば、静止画では人間が気づかないような情報操作であっても動画にした場合、ノイズとして検知されることがあるらしい。そして音楽に至っては画像よりも人間のノイズに対する許容度が小さく、データを隠すのは容易でない。

こう考えてくると、もっとノイズに対して許容度の小さいテキストデータに埋め込むことなどできるのだろうか、、と思うが参考文献7によると一応試みはあるらしい。もっともその方法は「スペーシングの利用や、文書そのものに何も影響を与えないコードを埋め込んでおくなどの手法がとられる」ということだから、あまり強力なデータ隠蔽方法のようには思えない。(文書のデジタルデータを解析すれば、何かがおかしいことは判明するだろう)ちなみに印刷物に関しても「印字の際に文字を少し回転、上下させたり、スペーシングを変える手法や印刷用紙に光学的処理を加えることなどが行われている」そうである。このうち「印字の文字を少し上下させる」という実例は「某所」で見せてもらった。一見なんの変哲もないワープロの印字(今度は輪郭は人間の目で見る限りなめらか)のように見えるのだが、そこにたくさんの情報が隠されているという。こちらには私は全くおてあげだったのだが、説明してくれた方によると印字のベースラインが文字ごとに少しだけ上下していて、それが隠された情報になっている、とのことだった。

 

 

電子透かしに要求される性質

ここで電子透かしに要求される性質をずらずらと参考文献から引用してみよう。これらの要求は世の中の常として必ずお互いに足をひっぱるようにできている。あちらをたてればこちらはたたないのだ。これらの要求を高いレベルで満足できる方法が「いい方法」ということになるのだろう。

 

(1)データは実データ部分(つまり画像とか音楽データとか)に埋め込まれること。(ヘッダなどに付加された場合の問題は前述したとおり)

(2)データをうめこむことによるデータの変化が利用者に気づかれないこと。(おおっぴらに「ここにデータが付加されてますよ」とばれてもまずいし、画像のくずれや、雑音として認識されてしまってはもっとまずい)

(3)透かしを埋め込んだ人間には透かしのデータを抽出できること(誰にも抽出できなくては役にたたない)

(4)埋め込み情報を不正に抽出することが困難であること。(簡単に破られてしまってはこれまた役にたたない。しかしこれはたぶん(3)と背反する要求になる)

(5) (4)と関連するが、不正にデータを加工して埋め込み情報を除去することが困難であること。(しかし埋め込み情報の抽出ができずに除去ができるとは思えないのだが)

(6)コンテンツを加工した後でも残っていること。(画像の拡大、縮小。フォーマット変換(例えばJPEGによる圧縮)、はては一度印刷させて、スキャナで読み込んだデータでも生き残って欲しいもの。(贅沢な話だが) 音楽データにはテスト標準があるそうだ。)

 

特に(6)の要求を満たすのは困難だ。例えば画像のほんの一部を切り取られてしまえば、さすがにどんな電子透かしの方法でもお手上げとなる場合があるに違いない。極端に拡大、縮小などの操作をされた場合でも同様だ。しかしながらあまりに変更された場合には「元のデータとかけはなれてしまうので、保護の対象とはみなされない」のだそうだ。

さて先ほどの「お手製簡易電子透かし」を例にして、これらの性質をどれだけ満足しているか見てみよう。(1)はOK,(2)もまあ普通に見ている限りは絶対わからないだろう。(3)はきわめて簡単。ところがそのおかげでもあって(4)は全くだめである。おそらく見る人が見れば各ドットの一番下位ビットが妙なパターンで並んでいることから簡単に透かしの存在に気がつくだろう。(5)もアウトである。たとえば画像全体の明るさを1/256変化させただけで(これはまず人間が気がつかないだろうが)各ドットの一番下位ビットは1→0,0→1と変化し、まったく文字を取り出すことはできなくなる。

それでは、ちょっと明るさを変化させただけでは除去できないようにするためにはどうしたらいいだろう。一番簡単な方法はデータを埋め込む桁を上位にすることである。桁があがる、ということは値が大きい、ということであり、データ埋め込みによる値の変化も大きくなる。従って多少明るさが変化しても埋め込まれたデータが消えてしまうことはない。しかしそうすると(2)の条件を満たさなくなる。下の画像を見てほしい。

これは一番下の桁ではなく、上から2番目(下から7番目)の桁にデータを埋め込んだ例である。確かに明るさをちょっと変化させただけではこのデータは消えないが、肝心な画像の質ががたがたになってしまって、何のために電子透かしをいれてまで保護しようとしているかわからなくなってしまっている。かのようにお互いに足をひっぱりあう要求を満足させるのはむつかしい。

最後の(6)であるが、最初にあげた写真はJPEG変換試験をパスできなかった。一度JPEGに変換し、元のTIFFに戻して電子透かし取り出しを試みたがでてきた文字列はなんのことかわからないものばかりである。しかし2番目の何が写っているのかよくわからないような写真は、TIFF→JPEG変換→再度TIFF変換した後でも"this is a pen"を取り出すことができた。だからといって偉いわけでもなんでもないのは前述したとおり。しかし下の画像でも、自動車に積んであるTVの画像だ、と言えばそれで疑問なく通るかもしれない。このように斜めにノイズがのった画像ばかり見せられていれば、たいていの人はそれは電波障害によるノイズで、電子透かしだとは思わないに違いない、、、などと妄想を広げてもどうなるわけでもないのだが。

 

さて、実際の世の中で使われている電子透かしの方法は、「お手軽簡易電子透かし」などよりもはるかに高いレベルでこれらの条件を満足している(らしい)。データを埋めこむ方法を理解しないで書いているからあまり深くは言えないのだが、一度アナログ変換(紙に出力した結果をスキャナで読み込むような操作)をした後でも生き残れるように情報を付加する技術がある、というのはちょっと驚きである。

 

 

電子透かしの関連技術・応用

さてここまで書いてきたことで分かるように、電子透かし、とはデジタルコンテンツの中に付加情報を隠し、著作権の保護に役立てよう、という技術である。よくよく考えるとこの前段と後段をわけて考えることができることに気がつく。デジタルコンテンツの中に隠した情報は、著作権保護の他にもいろいろ使用できるはずだ。

IBMではこのデジタルコンテンツ中に利用者に気づかれない付加情報を隠す技術を指すのにデータハイディングなる言葉を使っているようである。参考文献6によると、データハイディングには電子透かし以外にも以下の応用分野がある。

 

制御シグナルの埋め込み:例えば不正にコピーされたコンテンツが機器で再生されないようなロックをかけることができる。また事務機器に制御シグナルの検出回路がもうけられれば、機密の画像情報が複写されることを防ぐこともできる。制御シグナルが第3者にわからないように埋め込まれていれば、この再生ロック装置を回避するような装置も作りにくいわけだ。

 

デジタル指紋:これはIBMの定義によれば、デジタル透かしと対をなす技術のことだ。IBMの定義ではデジタル透かしとは送り手側の情報を埋め込む事を指し、デジタル指紋とは、受取手側の情報を埋め込む事を指すらしい。もっとも他の「電子透かし」のページを見てみると両者を合わせて「電子透かし」と読んでいる場合も多いような気がするが。

とにかく「誰に売りました」という情報を埋め込むことができれば、仮に違法コピーが出回った場合、誰から流出したものか判明するわけだ。おまけに送付時に必ず受取手の情報がはいるようにしておけば(これがどうやって実現されるのか参考文献6には書いてないが)不正コピーが流通する経路も明らかになるわけである。

 

デジタル署名:前述した電子署名と同じことであるが、文章の要約数を作成するかわりにデジタル写真などのデータについて要約数を作成し、これを暗号化してコンテンツに隠しておくのである。すると受け取った側は要約数を復号化することによりデジタル写真が改竄されていない、ということを確認できるわけだ。

さていずれの分野もこれまで説明してきた技術の応用、組み合わせであることが分かってもらえると思う。今後これらの技術は一般化し、標準化されて我々の目の届く範囲で暗躍することになるに違いない。

 

 

終わりに

以上だらだらと暗号化、及び電子透かしの技術について、本書及びインターネット上であさった情報をベースに書いてきた。今後情報のデジタル化、インターネットの普及が進むにつれて、プライバシーの保護、犯罪の防止の点から暗号化、電子透かしなどの技術の重要性は飛躍的に高まるものと考えられる。もしこの文を読んだあなたが若くてかつ、数学の方面に興味があればこの方面に進んでみると結構な金儲けができるかもしれない。もうあまり若くなくてかつ数学的な才能が貧弱な私はこうしてそれらの技術に関する駄文でも書いて満足することにしよう。

ちなみに、この文章はYahoo Japanに登録されて以来、実にたくさんの人に読んでもらえることとなった。ありがとうございます。調子にのって書き始めたは良いが、途中で放ってある「ネットワークについて」もお暇でしたらごらんください。 

 

参考文献:

1. O'Reilly社発行、Simson Garfinkel著、山本和彦監訳、株式会社ユニテック訳の「PGP-暗号メールと電子署名」

2. The comp.security.pgp FAQ(http://members.xoom.com/angriff/crypt/faq-appendix.html)

3. 暗号利用技術ハンドブック(http://www.ecom.or.jp/about_wg/wg05/cr-swg/code2-1.html)

4. Giovanni Digital Watermarking (http://www.cedge.co.jp/products/gio/gdigmark.html)

5. RSA社FAQ(http://www.rsa.com/rsalabs/faq/)

6. データハイディング技術解説(http://www.trl.ibm.co.jp/projects/s7730/Hiding/dhdoc1.htm)

7. 「電子透かし技術」について(http://ibl.co.jp/ible/vol1/18/sukasi-2.html)


注釈

フロッピからインストール:この当時、CD-ROMはそれほど一般的に使用されている機器ではなかった。それよりなによりも、当時のWordはフロッピーからインストールできるようなサイズだったのである。本文に戻る

 

 

この画像:この画像の元のフォーマットはTIFFであるが、ホームページに乗せる関係でここではJPEGにしてある。従って本当の事を言えば「ここにある画像」を処理して元のデータを得ることは不可能である。(複号化の結果は $ rxz|YfU aq$S^6=|X!c9 だった)

ちなみにこの写真は1998年に撮影した米国Nevada州、Calienteの風景である。何故この場所に行ったかは、「夏の終わり:8章」参照のこと。本文に戻る

 

願望が現実となって見えてしまう人:トピック一覧)私もその一人かもしれない。本文に戻る