ステガノグラファー トピックス

ステガノグラファーは、ステガノグラフィ技術を用いた独自の電子透かしエンジン、HIP(Happy Image Privacy)で画質を保持したまま大量の透かしデータが隠蔽できる電子透かしエディターです。

ステガノグラファースプラッシュイメージ
ビューアー設定画面

ビューアー設定で

  • ズームアルゴリズム
  • ズームの限界
  • 初期表示のズーム倍率
  • ウィンドウ背景色、透過色
  • ファイルタイプの関連付け
  • スプラッシュイメージ
が設定できます。

●ワンポイント
ファイルタイプの関連付けをしておくと、エクスプローラからファイルをダブルクリックすることでステガノグラファーが起動できるようになります。

↑TOP

ファイルオープンダイアログ

透かしを埋め込むイメージのことを錯乱画像(ダミー画像)といいます。
錯乱画像を開くには、下記の方法があります。

  • ファイルメニューの開くで、ファイルオープンダイアログ(左図)からファイルを選択する
  • エクスプローラからドラッグ&ドロップして表示されるダイアログから、「このウィンドウに表示する」を選択する

  • 錯乱画像対応の画像フォーマット
    ビットマップ、JPEG、GIF、TIFF、PNG、フォトCD、アイコン、カーソル、アニメーションカーソル、アイコンライブラリー、PSD、PICT
  • 錯乱画像対応の動画フォーマット
    AVI、MPEG、QuickTimeムービー

↑TOP

ドラッグ&ドロップ

錯乱画像に透かしデータを埋め込むには、下記の方法があります。

  • 電子透かしメニューの透かし情報の埋め込みで、ファイル選択ダイアログからファイルを選択する(複数可)
  • エクスプローラからドラッグ&ドロップして表示されるダイアログ(左図)から、「透かし情報として埋め込む」を選択する

●ワンポイント
表示されている画像ピクセル(DIB)に透かしを埋め込みます。複数のファイルを一度に埋め込むことができます。

透かしデータ設定ダイアログ

次に、透かしデータ設定ダイアログが表示されます。
このダイアログで下記の設定ができます。

  • パスワード(MD5による暗号化)の有無
  • 透かしデータの暗号化の有無
  • 埋め込みアルゴリズムの選択(Ver2.1追加機能)
  • 埋め込み確認プレビュー(Ver2.1追加機能)
  • 埋め込み可能サイズの表示
  • 透かしデータの圧縮の有無
  • 透かしデータへのコメントの付与
  • 透かしデータの抽出時のファイル名

●ワンポイント
ファイル以外に、テキスト、ショートカットが透かしデータとして埋め込めます。
パスワード有りで透かしデータの暗号化を行うとリバースエンジニアリングを行っても、パスワードが分からない限りデコードは不可能になります。
Ver2.1から「埋め込み確認プレビュー」ボタンで埋め込み画像が確認できるようになりました。

埋め込み結果レポート

最後に、埋め込みが成功したかどうかを示す埋め込み結果レポートが表示されます。
この例では、24ビットの800x585ピクセルのデータサイズ、1,404,000バイト(=3x800x585)に、自動選択アルゴリズムで526,448バイト(約37.5パーセント)の透かしが埋め込み可能であり、280,717バイトの圧縮サイズで3つのファイルが埋め込まれたことをレポートしています。

●ワンポイント
埋め込みアルゴリムズは、目的によって最適なものを選択して下さい。

  • 画質と埋め込みサイズを均等に評価
    アルゴリズム自動選択を使用して下さい。
  • 画質優先
    LSB(最下位ビット)への埋め込みの1ビットを使用して下さい。
  • 埋め込みサイズ優先
    画質をある程度考慮するのであれば、LSB(最下位ビット)への埋め込みの6ビットまでを使用して下さい。
    画質を無視するのであれば、LSB(最下位ビット)への埋め込みの7〜8ビットを使用して下さい。
  • ファイルサイズ優先
    インデックス画像埋め込みを使用して下さい。
    画質を考慮するのであれば、8ビットインデックス画像埋め込みの7ビット(128色)を使用して下さい。
    埋め込みサイズを優先したい場合は、インデックス画像埋め込みの1ビット(2色)を使用して下さい。

↑TOP

フルカラー画像(24ビット)とインデックス画像(4,8ビット)に透かしが埋め込むことができます。
目的に応じて、透かしデータサイズと画質、ファイルサイズで使い分けて下さい。

出力形式アルゴリズム概要パターン最大埋め込み率
24ビット
PNG
BMP
TIFF
JPEG
自動選択画素の複雑さによる埋め込みとLSB埋め込みで画質と最大埋め込み率が最適なアルゴリズムを選択します-37.5〜60%
画素の複雑さによる埋め込みコンジュケート演算によって、色の複雑な部分に透かしを埋め込みます。
写真のような自然画像に適しており、色数の少ない画像には不適です。
画像エントローピーによって最大埋め込み率は異なります。
-〜60%
LSB(最下位ビット)への埋め込み画素の最下位ビットに埋め込みます。 埋め込み可能サイズは画像の性質に関係なく、画像サイズで決まります。
埋め込むデータ量が大きいほど画質は劣化しますが、埋め込みビットが3ビット程度までは画質の劣化は目立ちません。
埋め込むビット数によって最大埋め込み率は異なります。
1ビット〜8ビット12.5%〜100%
8ビット
GIF
PNG
BMP
TIFF
256色カラーパレットへの埋め込み8ビットカラーパレットの最下位ビットに埋め込みます。
マップする色数によって最大埋め込み率は異なります。
7ビット(128色)〜1ビット(2色)12.5〜87.5%
4ビット
GIF
PNG
BMP
TIFF
16色カラーパレットへの埋め込み4ビットカラーパレットの最下位ビットに埋め込みます。
マップする色数によって最大埋め込み率は異なります。
3ビット(8色)〜1ビット(2色)25〜75%

↑TOP

透かし入りサンプル画像です。ステガノフラファー2.1をインストールすれば、画像右クリックでIEのコンテキストメニューに「透かしの抽出」メニューが表示されます。(パスワード:123456789) ※Ver2.1以上でないと透かしは認識されません。

フルカラー自動選択 インデックス8色 インデックス2色
自動選択埋め込み
(24ビットPNG画像)
インデックス8色埋め込み
(8ビットGIF画像)
インデックス2色埋め込み
(8ビットGIF画像)

↑TOP

透かしデータの抽出

透かしデータの複号は、電子透かしメニューの透かし情報の抽出で行います。
パスワードが設定されている場合には、「パスワードの入力」ダイアログがまず表示されます。
その後「透かし情報の抽出」ダイアログが出力され、保存方法の選択ができます。また、透かし情報のプロパティも表示されます。
透かし情報を確認して問題なければ、下記から保存方法を選択します。

  • 開く
    透かしのデータを確認する場合に選択します。
    データは、テンポラリーに保存されますが、確認後に削除されます。
  • ファイルに保存する
    透かしのデータをファイルに保存する場合に選択します。
  • ファイルに保存して開く
    透かしのデータをファイルに保存してから、シームレスで開きます。

●ワンポイント
出所不明な実行形式のファイルは、危険なので抽出しないようにして下さい。

↑TOP

ファイルメニューの名前を付けて保存で編集中の錯乱画像がイメージファイルに保存できます。
錯乱画像は、下記のイメージファイルに保存できます。
    可逆圧縮イメージ
  • PNG
  • GIF(4,8ビット)
  • ビットマップ
  • TIFF
    非可逆圧縮イメージ
  • JPEG

●ワンポイント
可逆圧縮イメージの場合、ファイルサイズは透かしデータサイズに依存しませんが、非可逆圧縮イメージでは、 透かしデータサイズだけ画像ファイルサイズが大きくなります。
ブラウザー(IE、NetScape)も対応している可逆圧縮イメージのPNGまたはGIF形式での保存をお勧めします。

↑TOP

錯乱画像に対して次の編集操作ができます。
  • イメージの回転
  • イメージのミラー移動
  • イメージのフィルター
  • イメージのサイズ変更
  • 領域選択された大きさに切り抜き
  • 編集操作のやり直し

↑TOP

ステガノグラファーは、ZSTEGANOINP.DLLというCOMサーバー(インプロセスサーバー)を提供します。
透かしのエンコード/デコードをVBScriptなどのスクリプト言語によってバッチ化することができます。

■COMサーバー稼動環境
Windows Me/2000または、Microsoft Visual Studio6.0がインストールされていること。

■オブジェクトの作成に必要な情報
  ・アプリケーション(サーバー)名
    ZSTEGANOINP
  ・透かしエンコーダークラス
    クラス名 :Stegano
    GUID :4F35298C-6BCF-45CC-ABF9-C9437DDB76C2
    バージョン:1
  ・透かしデータクラス
    クラス名 :SteganoContents
    GUID : 37F9564B-D8FA-415F-A5F0-2A202885E8B5
    バージョン:1

■オブジェクトの参照に必要な情報
  ・タイプライブラリー名
    ZSTEGANOINPLib
    表示名称 :ZSTEGANOINPLib(ステガノグラファー 1.0 タイプ ライブラリ)
    GUID :9E780081-6972-46DE-A2DD-DF212842AF68

■オブジェクトの作成
CreateObjectスクリプト関数およびVisual BasicのNewキーワードでオブジェクトのインスタンスを生成できます。 CreateObjectよりも、参照設定を使用してNewキーワードでオブジェクトを作成する方が効率的です。
@CreateObjectによるオブジェクトの作成コード
  Dim oRet
  Set oRet = CreateObject("ZSTEGANOINP.Stegano.1")

ANewキーワードによるオブジェクトの作成コード
  Dim oRet as Stegano
  Set oRet = New Stegano
  あるいは、
  Dim oRet as New Stegano

■タイプライブラリーの参照
タイプライブラリーの参照を行うと、スクリプトからステガノグラファーの組み込み定数が使用できるようになります。 Windows Script Host コントロールファイル(.wsf)では、XMLタグによってタイプライブラリーの参照ができます。
  @プログラムIDによるオブジェクトの参照コード
  <Reference object="ZSTEGANOINP.Stegano.1"></Reference>

  AGUIDによるオブジェクトの参照コード
  <Reference guid="9E780081-6972-46DE-A2DD-DF212842AF68"></Reference>

■プロパテイ/メソッド
インストール後にステガノグラファーヘルプをご覧下さい。

↑TOP

Windows Script Host コントロールファイル(.wsf)を使用すると、スクリプトの個別の設定ができます。
下記のサンプルスクリプト(sample.wsf)では、以下の処理が記述されています。
尚、このサンプルは、WScript.exe(Ver5.1)で動作確認していますが、バージョンが古いと動作しない可能性があります。
※このサンプルでは画面を表示していますが、サーバー処理等のバックグランド処理では画面を表示しないメソッドで作成して下さい。

@タイプライブラリーの参照(<Reference>)
透かし埋め込みサブルーチンの実行
Aステガノグラファーオブジェクトのインスタンス作成(CreateObject)
B錯乱画像の読み込み
  画像ファイルオープンダイアログが表示されます。
C透かし埋め込みデータの作成
  ・画像ファイルの追加(存在するファイルであること)
  ・ショートカットの追加
D透かしの埋め込み
  透かし埋め込みダイアログが表示されます。
E錯乱画像の保存
  画像ファイル保存ダイアログが表示されます。
透かし抽出サブルーチンの実行
Fステガノグラファーオブジェクトのインスタンス作成(CreateObject)
G錯乱画像の読み込み
  透かし埋め込みサブルーチンで保存された画像ファイルを読み込みます。
H透かしの復号
  透かし抽出ダイアログが表示されます。

■sample.wsfソースコード
<Job id="Example">
<?job debug="true"?>
<Reference object="9E780081-6972-46DE-A2DD-DF212842AF68"></Reference>
<Script language="VBScript">
'--------------------------
'メインプログラム
'--------------------------
Dim saveFilename
'透かしを埋め込む
Call EmbedSample(saveFilename)
'埋め込んだ透かしを抽出
if saveFilename <> "" then
  Call ExtractSample(saveFilename)
End If
'--------------------------
'透かし埋め込みサブルーチン
'--------------------------
Sub EmbedSample(saveFilename)
  Dim oRet, Result, filename
  Dim Format
  'オブジェクトの生成
  Set oRet = CreateObject("ZSTEGANOINP.Stegano.1")

  '錯乱画像の読み込み(ダイアログ表示)
  filename = oRet.OpenImageFileUI
  If filename = "" Then
    Exit Sub
  End If
  '画像ファイルを透かし埋め込みデータに追加
  '存在するファイルパスを指定すること
  Result = oRet.EmbedContents.AddItem(stgFile, "c:\test.jpg")
  If Result < 0 Then
    MsgBox ("埋め込みデータ追加エラー")
    Exit Sub
  End If
  'ショートカットを透かし埋め込みデータに追加
  Result = oRet.EmbedContents.AddItem(stgShortcut, "http://hp.vector.co.jp/authors/VA017815/")
  If Result < 0 Then
    MsgBox ("埋め込みデータ追加エラー")
    Exit Sub
  End If

  '透かしを錯乱画像に埋め込む(ダイアログ表示)
  Result = oRet.EmbedUI
  If Not (Result) Then
    MsgBox ("透かし埋め込みエラー")
    Exit Sub
  End If

  '透かしを埋め込んだ錯乱画像をファイル保存(ダイアログ表示)
  saveFilename = oRet.SaveImageFileUI( , filename)
  If saveFilename <> "" Then
    MsgBox ("透かしが" & saveFilename & "に保存されました")
  else
    MsgBox ("透かしが保存されませんでした")
  End If

  Set oRet = Nothing
End Sub
'----------------------
'透かし抽出サブルーチン
'----------------------
Sub ExtractSample(filename)
  Dim oRet, Result
  'オブジェクトの生成
  Set oRet = CreateObject("ZSTEGANOINP.Stegano.1")

  '錯乱画像の読み込み
  Result = oRet.ReadImageFile(filename)
  If Not (Result) Then
    MsgBox ("読み込みエラー")
    Exit Sub
  End If

  '透かしの抽出(ダイアログ表示)
  Result = oRet.ExtractUI
  If Result Then
    MsgBox ("透かしが" & filename & "から復号されました")
  else
    MsgBox ("透かし復号エラー")
  End If

  Set oRet = Nothing
End Sub

↑TOP