IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 公立大学法人会津大学の特許一覧

特許7143973秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム
<>
  • 特許-秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム 図1
  • 特許-秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム 図2
  • 特許-秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム 図3
  • 特許-秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム 図4
  • 特許-秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム 図5
  • 特許-秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム 図6
  • 特許-秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム 図7
  • 特許-秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム 図8
  • 特許-秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム 図9
  • 特許-秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム 図10
  • 特許-秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム 図11
  • 特許-秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム 図12
  • 特許-秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-20
(45)【発行日】2022-09-29
(54)【発明の名称】秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム
(51)【国際特許分類】
   G09C 5/00 20060101AFI20220921BHJP
   G09C 1/02 20060101ALI20220921BHJP
   H04N 1/387 20060101ALI20220921BHJP
【FI】
G09C5/00
G09C1/02
H04N1/387
【請求項の数】 12
(21)【出願番号】P 2017156805
(22)【出願日】2017-08-15
(65)【公開番号】P2019035850
(43)【公開日】2019-03-07
【審査請求日】2020-08-07
【前置審査】
(73)【特許権者】
【識別番号】506301140
【氏名又は名称】公立大学法人会津大学
(74)【代理人】
【識別番号】100094525
【弁理士】
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【弁理士】
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】趙 強福
(72)【発明者】
【氏名】劉 家維
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2010-262117(JP,A)
【文献】特開2008-065834(JP,A)
【文献】特開2006-128743(JP,A)
【文献】特開平05-046357(JP,A)
【文献】特表2012-514353(JP,A)
【文献】米国特許第07039192(US,B1)
【文献】米国特許出願公開第2008/0069340(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09C 5/00
G09C 1/02
H04N 1/387
(57)【特許請求の範囲】
【請求項1】
送信側端末から受信側サーバに送信される秘密データの隠蔽方法であって、
前記送信側端末と受信側サーバに共通のリストテーブルを有し、
前記送信側端末の処理装置により、
秘密データを、前記送信側端末のリストテーブルを参照して圧縮コード列に変換するステップと、
前記変換された圧縮コード列のデータサイズを小さくするロスレス符号化を行うステップと、
前記ロスレス符号化後に圧縮コード列を、暗号化鍵により暗号化するステップと、
前記暗号化された圧縮コード列をカバー画像に埋め込み、ステゴ画像を形成するステップと、
前記形成されたステゴ画像を受信側サーバに送信するステップを実行し、
前記受信側サーバの処理装置により、
前記送信側端末から送信されるステゴ画像を受信するステップと、
前記受信したステゴ画像から埋め込まれた前記暗号化された圧縮コード列を分離してカバー画像を復元するステップと、
更に、前記分離した暗号化された圧縮コード列を復号鍵により復号化するステップと、
前記復号化された圧縮コード列に対し、前記ロスレス符号化に対応するロスレス復号化により前記圧縮コード列に変換を行うステップと、
前記変換された圧縮コード列を前記サーバ側のリストテーブルを参照して前記秘密データを復元するステップを実行する、
ことを特徴とする秘密データの隠蔽方法。
【請求項2】
請求項1において、
さらに、前記送信側端末の処理装置で、
前記ロスレス符号化を行うステップとして、ハフマン符号化を、
前記暗号鍵による暗号化するステップとして、XOR暗号化を実行する、
ことを特徴とする秘密データの隠蔽方法。
【請求項3】
請求項1又は2の何れか1項において、
前記リストテーブルは、秘密データがテキストデータであるとき、単語及び短文をリストの項番に対応付けられたボキャブラリテーブルであって、前記圧縮コード列に変換するステップは、前記秘密データの単語を対応するリストの項番に変換して出力する、
ことを特徴とする秘密データの隠蔽方法。
【請求項4】
請求項1又は2の何れか1項において、
前記リストテーブルは、秘密データが画像、音声などの非テキストデータであるとき、ベクトル量子化(VQ:Vector Quantization)された前記非テキストデータがリストの項番に対応付けられたコードブック(codebook)であって、前記圧縮コード列に変換するステップは、前記秘密データのベクトル量子化に対応するリストの項番に変換して出力する、
ことを特徴とする秘密データの隠蔽方法。
【請求項5】
送信側端末から受信側サーバに送信される秘密データの隠蔽を実行するプログラムであって、
送信側端末の処理装置に、
秘密データを、前記送信側端末のリストテーブルを参照して圧縮コード列に変換するステップと、
前記変換された圧縮コード列のデータサイズを小さくするロスレス符号化を行うステップと、
前記ロスレス符号化後に圧縮コード列を、暗号化鍵により暗号化するステップと、
前記暗号化された圧縮コード列を暗号化鍵により暗号化するステップと、
前記暗号化された圧縮コード列をカバー画像に埋め込み、ステゴ画像を形成するステップと、
前記形成されたステゴ画像を受信側サーバに送信するステップを実行させ、
受信側サーバの処理装置に、
前記送信側端末から送信されるステゴ画像を受信するステップと、
前記受信したステゴ画像から埋め込まれた前記暗号化された圧縮コード列を分離してカバー画像を復元するステップと、
更に、前記分離した暗号化された圧縮コード列を復号鍵により復号化するステップと、
前記復号化された圧縮コード列に対し、前記ロスレス符号化に対応するロスレス復号化により前記圧縮コード列に変換を行うステップと、
前記変換された圧縮コード列を前記サーバ側のリストテーブルを参照して前記秘密データを復元するステップを実行させる
ことを特徴とする秘密データの隠蔽を実施するプログラム。
【請求項6】
請求項5において、
さらに、前記送信側端末の処理装置で、
前記ロスレス符号化を行うステップとして、ハフマン符号化を、
前記暗号鍵による暗号化するステップとして、XOR暗号化を実行させる、
ことを特徴とする秘密データの隠蔽を実施するプログラム。
【請求項7】
請求項5又は6の何れか1項において、
前記リストテーブルは、秘密データがテキストデータであるとき、単語及び短文をリストの項番に対応付けられたボキャブラリテーブルであって、前記圧縮コード列に変換するステップは、前記秘密データの単語を対応するリストの項番に変換して出力する、
ことを特徴とする秘密データの隠蔽を実施するプログラム。
【請求項8】
請求項5又は6の何れか1項において、
前記リストテーブルは、秘密データが画像、音声などの非テキストデータであるとき、
ベクトル量子化(VQ:Vector Quantization)された前記非テキストデータがリストの項番に対応付けられたコードブック(codebook)であって、前記圧縮コード列に変換するステップは、前記秘密データのベクトル量子化に対応するリストの項番に変換して出力する、
ことを特徴とする秘密データの隠蔽を実施するプログラム。
【請求項9】
送信側端末から受信側サーバに秘密データを送信する秘密データ通信システムであって、
前記送信側端末と受信側サーバに共通のリストテーブルを有し、
前記送信側端末の処理装置により、
秘密データを、前記送信側端末のリストテーブルを参照して圧縮コード列に変換するステップと、
前記変換された圧縮コード列のデータサイズを小さくするロスレス符号化を行うステップと、
前記ロスレス符号化後に圧縮コード列を、暗号化鍵により暗号化するステップと、
前記暗号化された圧縮コード列をカバー画像に埋め込み、ステゴ画像を形成するステップと、
前記形成されたステゴ画像を受信側サーバに送信するステップを実行し、
前記受信側サーバの処理装置により、
前記送信側端末から送信されるステゴ画像を受信するステップと、
前記受信したステゴ画像から埋め込まれた前記暗号化された圧縮コード列を分離してカバー画像を復元するステップと、
更に、前記分離した暗号化された圧縮コード列を復号鍵により復号化するステップと、
前記復号化された圧縮コード列に対し、前記ロスレス符号化に対応するロスレス復号化により前記圧縮コード列に変換を行うステップと、
前記変換された圧縮コード列を前記サーバ側のリストテーブルを参照して前記秘密データを復元するステップを実行する、
ことを特徴とする秘密データ通信システム。
【請求項10】
請求項9において、
さらに、前記送信側端末の処理装置で、
前記ロスレス符号化を行うステップとして、ハフマン符号化を、
前記暗号鍵による暗号化するステップとして、XOR暗号化を実行する、
ことを特徴とする秘密データ通信システム。
【請求項11】
請求項9又は10の何れか1項において、
前記リストテーブルは、秘密データがテキストデータであるとき、単語及び短文をリストの項番に対応付けられたボキャブラリテーブルであって、前記圧縮コード列に変換するステップは、前記秘密データの単語を対応するリストの項番に変換して出力する、
ことを特徴とする秘密データ通信システム。
【請求項12】
請求項9又は10の何れか1項において、
前記リストテーブルは、秘密データが画像、音声などの非テキストデータであるとき、ベクトル量子化(VQ:Vector Quantization)された前記非テキストデータがリストの項番に対応付けられたコードブック(codebook)であって、前記圧縮コード列に変換するステップは、前記秘密データのベクトル量子化に対応するリストの項番に変換して出力する、
ことを特徴とする秘密データ通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、秘密データの隠蔽方法、これを実施するプログラム、及び秘密データの通信システムに関する。
【背景技術】
【0002】
近年、インターネットを通しての秘密処理の急速な進展により、違法な第三者の攻撃から秘密データを守るために、効率の良い情報の隠蔽方法が求められている。
【0003】
そして、個人的あるいは、重要情報でマルチメディアに埋め込まれるデータ情報の送信におけるセキュリティを確保するための種々の情報隠蔽技術が多くの研究者により発明されている。
【0004】
情報隠蔽、即ちステガノグラフィ技術は、画像、ビデオ、テキスト、あるいは他の種類のマルチメディアデータをカバーデータ(キャリア)として用い、キャリアに秘密データを埋め込むものである。多くの場合、人は、マルチメディアデータに埋め込まれている個人的あるいは、重要情報の存在に気づくことはない。それ故に、ある意味では情報隠蔽により、暗号化よりもより良く情報の保護を行うことが可能である。
【0005】
情報隠蔽技術は、キャリア(例えば、画像)の復元を必要とするか否かにより大まかに2つのタイプ、即ち、可逆か非可逆かに分類できる。可逆隠蔽情報にあっては、当該可逆隠蔽情報から埋め込まれている秘密データを抽出する際、元のキャリアを復元することができる。これにより医療、軍事といった、あるいは他の敏感なデータの保護に役立てることが可能である。
【0006】
可逆情報隠蔽は、過去10年において、広く研究され、4つの主なタイプにクラス分けできる。すなわち、差拡張法(difference expansion:DE)、ヒストグラムシフト法(histogram shifting:HS)、デュアルイメージ法(dual images)、及びピクセル値順序付け法(pixel value ordering:PVO)である。
【0007】
差拡張法(DE)は、二つの隣接ピクセルをグループとして用い、秘密データを埋め込む前に、幾度か差を拡張するものである。2003年に、Tian, 他が、古典的な差拡張法を提案している(非特許文献1)。この方法は、2つのピクセルの差を計算し、その差の値を2倍に拡張し、秘密データの1ビットを埋め込むものである。
【0008】
ヒストグラムシフト法(HS)は、予測エラー周波数の統計を用い、予測エラーヒストグラムを生成し、高周波領域に秘密データを埋め込むものである。2006年に、Ni, 他が、ヒストグラムシフトを提案している(非特許文献2)。2009年に、Tsai, 他が、直線予測を用いてエラー値を生成して、正及び負のヒストグラムを構成し、秘密データを高周波領域に埋め込んでいる(非特許文献3)。
【0009】
デュアルイメージ法(dual images) は、秘密データを埋め込む前に、オリジナルの画像から同じサイズの2つのステゴ(stego)画像を複写するものである。この方法は、近年、より一般になっている。なぜならば、埋め込む情報を大きくすることができるという意味がある。2015年に、Lu, 他が最下位ビット(least significant bit)に基づく、デュアルイメージ法を提案している(非特許文献4)。この方法は、最下位ビット法を用いて二つのステゴ画像に対するピクセル値を生成し、それぞれ二つのピクセルの平均値を計算し、ステゴピクセルが復元されたか否かを判定する。Lu,他は、同じ年に、中央折り返し法(center folding strategy)に基づくデュアルイメージ法を提案している(非特許文献5)。この方法は、秘密データのサイズを効果的に削減し、低歪を得ることができ、従って、復元される画像の品質を良くすることができる。
【0010】
上記に述べた3つの方法以外に、ピクセル値順序付け法(PVO)が、データの可逆秘匿にしばしば用いられる。PVO法は、画像をいくつかのサイズのブロックに分割し、それぞれのブロックにおける全ピクセル値を昇順に分類し、最大または最小値に、秘密データを埋め込む。Li,他が、2013年に古典的PVO法を提案している。
【0011】
この方法では、それぞれ分割されたブロックにおいて全てのピクセル値をソートして予測エラーを求め、“maximum minus second maximum” か、“minimum minus second minimum”を用いて秘密データを埋め込む(非特許文献6)。QuとKimは、Liの方法を改良し、2015年にpixel based pixel value ordering(PPVO)を提案している(非特許文献7)。
【0012】
上記をまとめると、大半の研究者は、いかに埋め込み法を改良して高画像品質を得るかに焦点を当てているが、少数の学者は、ステゴ画像の品質に影響を与える重要な要因である秘密データのサイズを検討してきた。
【先行技術文献】
【特許文献】
【0013】
【文献】特許第5939572号公報
【文献】特開2013-167865号
【非特許文献】
【0014】
【文献】J. Tian, “Reversible Data Hiding Using a Difference Expansion,”IEEE Transactions on Circuits and Systems for Video Technology, Vol.13, No. 8, pp.890-896, Aug.2003.
【文献】Z. Ni, Y.Q. Shi, N. Ansari, and W. Su, “Reversible Data Hiding,”IEEE Transactions on Circuits and Systems for Video Technology, Vol.16, No. 3, pp.354-362, Mar.2006.
【文献】P. Tsai, Y.C. Hu, and H.L. Yeh, “Reversible Image Hiding Scheme Using Predictive Coding and Histogram Shifting,”Signal Processing, Vol.89, pp.1129-1143, Jun.2009.
【文献】T.C. Lu, C.Y. Tseng, and J.H. Wu, “Dual Imaging-based Reversible Hiding Technique Using LSB Matching,” Signal Processing, Vol.108, pp.77-89, Mar.2015.
【文献】T.C. Lu, J.H. Wu, and C.C. Huang, “Dual-Image-Based Reversible Data Hiding Method Using Center Folding Strategy,”Signal Processing, Vol.115, pp.195-213, Oct.2015.
【文献】X.L. Li, J. Li, B. Li, and B. Yang, “High-Fidelity Reversible Data Hiding Scheme Based on Pixel-Value-Ordering and Prediction Error-Expansion,”Signal Processing, Vol.93, Issue 1, pp.198-205, Jan.2013.
【文献】X.Qu, H.J.Kim, “Pixel-Based Pixel Value Ordering Predictor for High-Fidelity Reversible Data Hiding,”Signal Processing, Vol.111, pp. 249-260, Jun.2015.
【発明の概要】
【発明が解決しようとする課題】
【0015】
ここで、上記秘匿データの送信においては、そのデータサイズと通信における秘匿性が重要である。したがって、本発明の目的は、上記の背景技術に鑑みて、データサイズを削減するとともによりセキュリティを高める秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システムを提供することにある。
【課題を解決するための手段】
【0016】
上記課題を達成する本発明は、第1の側面として、送信側から受信側に送信される秘密データの隠蔽方法であって、送信側と受信側に共通のリストテーブルを有し、送信側で、秘密データを、前記リストテーブルを参照して圧縮コード列に変換するステップと、前記変換された圧縮コード列をカバー画像に埋め込み、ステゴ画像を形成するステップと、前記形成されたステゴ画像を受信側に送信するステップと、受信側で、前記ステゴ画像を受信するステップと、受信したステゴ画像から埋め込まれた圧縮コード列を分離してカバー画像を復元するステップと、更に、前記分離した圧縮コード列から前記リストテーブルを参照して前記秘密データを復号するステップ有することを特徴とする。
【0017】
上記課題を達成する本発明は、第2の側面として、送信側から受信側に送信される秘密データの隠蔽を実行するプログラムであって、送信側の処理装置に、秘密データを、リストテーブルを参照して圧縮コード列に変換するステップと、前記変換された圧縮コード列をカバー画像に埋め込み、ステゴ画像を形成するステップと、前記形成されたステゴ画像を受信側に送信するステップを実行させ、受信側の処理装置に、前記ステゴ画像を受信するステップと、受信したステゴ画像から埋め込まれた圧縮コード列を分離してカバー画像を復元するステップと、更に前記分離した圧縮コード列から前記リストテーブルを参照して前記秘密データを復号するステップを実行させることを特徴とする。
【0018】
上記課題を達成する本発明は、第3の側面として、送信側から受信側に秘密データを送信する秘密データ通信システムであって、送信側と受信側に共通のリストテーブルを有し、送信側に処理装置を有し、前記送信側の処理装置により、前記秘密データを、前記リストテーブルを参照して圧縮コード列に変換するステップと、前記変換された圧縮コード列をカバー画像に埋め込み、ステゴ画像を形成するステップと、前記形成されたステゴ画像を受信側に送信するステップを実行し、更に受信側に処理装置を有し、前記受信側の処理装置により、前記ステゴ画像を受信するステップと、受信したステゴ画像から埋め込まれた圧縮コード列を分離してカバー画像を復元するステップと、更に、前記分離した圧縮コード列から前記リストテーブルを参照して前記秘密データを復号するステップを実行することを特徴とする。
【0019】
上記課題を達成する本発明は、前記第1、第2及び第3の側面において、第1の態様として、送信側で、前記圧縮コード列に対し、ロスレス符号化を行い、前記ロスレス符号化の結果に対して、ポータブル暗号化を行い、前記ポータブル暗号化されたデータを前記カバー画像に埋め込むことを特徴とする。
【0020】
上記課題を達成する本発明は、前記第1、第2及び第3の側面において、第2の態様として、前記ロスレス符号化としてハフマン符号化、前記ポータブル暗号化としてXOR暗号化を行うことを特徴とする。
【0021】
上記課題を達成する本発明は、前記第1、第2及び第3の側面において、第3の態様として、前記リストテーブルは、秘密データがテキストデータであるとき、単語及び短文をリストの項番に対応付けられたボキャブラリテーブルであって、前記圧縮コード列に変換するステップは、前記秘密データの単語を対応するリストの項番に変換して出力することを特徴とする。
【0022】
上記課題を達成する本発明は、前記第1、第2及び第3の側面において、第4の態様として、前記リストテーブルは、秘密データが画像、音声などの非テキストデータであるとき、ベクトル量子化(VQ:Vector Quantization)された前記非テキストデータがリストの項番に対応付けられたコードブック(codebook)であって、前記圧縮コード列に変換するステップは、前記秘密データのベクトル量子化に対応するリストの項番に変換して出力することを特徴とする。
【図面の簡単な説明】
【0023】
図1】本発明に従う秘密データの隠蔽方法を用いる秘密データ通信システムの概念構成図である。
図2】本発明に従う秘密データの隠蔽方法の手順を示す処理フローである。
図3】ボキャブラリテーブル(単語テーブル)の一例を理解容易に簡略して示す図である。
図4】入力データを、単語テーブルを参照してインデックスに変換した結果を示す図である。
図5】ボキャブラリテーブルにより変換されたインデックス列における、インデックス(シンボル)の発生回数をまとめたテーブルである。
図6図5のテーブルに基づいて構成されたハフマンツリーを示す図である。
図7】シンボルの発生回数に基づき割り当てられたハフマンコードテーブルの例である。
図8】XOR暗号化を説明する図である。
図9】PPVO法の処理過程を示す図である。
図10】8つのグレイスケール画像を示す図である。
図11】ハフマン符号化圧縮に用いるデータ量と生データ量を比較する表である。
図12】容量が10,000ビットに等しい時、同じ埋め込み容量で、本発明とPPVOの画像品質を比較した表である。
図13】容量が20,000ビットに等しい時、同じ埋め込み容量で、本発明とPPVOの画像品質を比較した表である。
【発明を実施するための形態】
【0024】
本発明の基本概念は、送信側と受信側で、同じリストテーブル、例えばボキャブラリテーブル(Vocabulary Table)を共有する。そして、元の秘密のテキストデータにおける単語(word)あるいは短文を前記ボキャブラリテーブル(以下、単語テーブルと表記)にリストされた単語(あるいは短文)のアドレス又はインデックスを用いて表す。これにより、第三者は、同じ単語順の同じ単語テーブルを有しない限り、ステゴ(stego)画像からデータを抽出したとしても、元の秘密データを復元することができない。
【0025】
ここで、本発明の適用は、上記秘匿すべきデータがテキストデータである場合の他、画像、音声などの非テキストデータであってもよい。非テキストデータを隠蔽するときは、ベクトル量子化(VQ:Vector Quantization)を利用して、リストテーブルとしてボキャブラリテーブル(Vocabulary Table)に相当するコードブック(codebook)を求めればよい。したがって、本発明の説明において、秘匿すべきデータがテキストデータあるいは非テキストデータを含むものとして「秘密データ」と表記する。
【0026】
この本発明の方法により、秘密データのデータサイズを小さく出来るとともに、よりセキュリティを高めることができる。
【0027】
秘密データを表すビットの総数を削減するために、更に、ロスレス符号化(lossless coding)を追加することができる。ロスレス符号化の一例として、ハフマン符号化(Huffman Coding)が知られている。すなわち、頻繁に出現する単語のインデックスを短い二値の文字列(コード)に割り当てる。このコードを定義するために、各枝葉が単語のコードを規定する様に二値ツリーを生成する。かかるロスレス符号化であるハフマン符号化アルゴリズムを用いて、効率的に画像歪みを低減することができる。
【0028】
さらに、本発明は、セキュリティを改良するために、ポータブル暗号化(Portable Encryption), 例えば、XOR暗号化を用いて秘密データを暗号化することもできる。
【0029】
これにより、攻撃者がステガノ解析によりステゴ(stego)画像を検出しても、埋め込まれている秘密データを容易に特定することができない。
【0030】
以下に、本発明の上記基本概念を実現する実施例を添付の図面に従い説明する。しかし、本発明は、これら実施例に限定されるものではなく、本発明の保護の範囲は、特許請求の範囲と同一又は類似の範囲にも及ぶ。
【0031】
図1は、本発明に従う秘密データの隠蔽方法を実施するための秘密データ通信システムの概念構成図である。
【0032】
実施例として端末1からサーバ2に秘密データを送信する通信システムを想定する。キャリア(カバーデータ)としての原画像に秘密データを埋め込ませてステゴ画像を生成して秘密データとして送信する。これにより原画像と秘密データをともに攻撃者から保護して送信することができる。
【0033】
端末1とサーバ2は、情報処理装置として基本的に同じ機能構成で示される。さらに、端末1とサーバ2は、インターネット等のネットワーク3を介して接続される。したがって、遠隔地間であっても、相互に接続が可能である。
【0034】
端末1は、バス15に接続される構成要素として、演算処理を行う演算処理素子であるCPU10、本発明の秘密データの隠蔽方法を実行するためのプログラム、及び送信側と受信側で同じリストテーブルを格納する固定記憶素子であるROM11、演算処理途中にデータを保存する一時記憶素子であるRAM13、更に入力素子12及び通信機能を有する出力素子14等を有して構成される。
【0035】
一方、サーバ2は、端末1と同様構成であって、CPU20、ROM21、RAM23、更に入力素子22及び出力素子24等が、バス25に接続されて構成されている。
【0036】
図2は、本発明に従う秘密データの隠蔽方法の手順を示す処理フローである。
【0037】
ステップS1-S4は、送信側(端末1)で実行され、ROM11に格納されるプログラムをCPU10により実行して実現される処理であり、ステップS5-S8は、受信側(サーバ2)で実行され、ROM21に格納されるプログラムをCPU20により実行して実現される処理である。
【0038】
ここで、本発明の特徴として送信データのサイズを小さくするとともに、秘密データを保護するための特徴として第1に、端末1とサーバ2間で、実施例として秘密データが、テキストデータであるとき、リストテーブルとして同じボキャブラリテーブル(単語テーブル)をROM11,21に保持している。秘密データが、非テキストデータであるときは、リストテーブルとしてコードブックを保持する。
【0039】
以下は、実施例として、秘密データがテキストデータであるときを想定して説明する。
【0040】
単語テーブルは、通信対象の秘密のテキストデータに現れる文字(単語、及び短文を含む)をインデックスリスト化したテーブルである。
【0041】
通信対象の秘密データのテキスト種類に対応して、事前にテキストデータ(P1)を取集し、単語テーブルを作成して端末1とサーバ2のそれぞれのROM11,21に登録しておく。
【0042】
図3は、上記作成される単語テーブルの一例を理解容易に簡略して示す図である。
【0043】
ボキャブラリ(単語)“And”,“This”,“an”,“another”,“difficult”,“example”,“is”, “of”,“stenography”に対して単語テーブルの順番をインデックスとして対応付けている。このインデックスの順番は、送信側と受信側で対応して定義され、後にデータ変換に対するキー(key)として使用される。
【0044】
次いで、入力データとして秘密データ(P2)を入力素子12により入力し、CPU10により、ROM11に登録してある単語テーブルを参照して、入力データ(P2)をインデックスのリストに変換する(ステップS1)。
【0045】
図4は、入力データを、単語テーブルを参照してインデックスに変換した結果を示す図である。入力データ(P2)が、“This is an example of stenography. This example is difficult example.”という文章であるとき、この文章を構成するそれぞれの単語を単語テーブルのインデックスに変換することができる。すなわち、変換されたインデックス列は、“27368926756”である。
【0046】
このように変換されたインデックス列は、11文字で構成されて上記の入力データ(P2)を表すことができるので、送信データのビット数サイズを小さくすることが可能である。すなわち、1文字が8ビットで表示されるので、11文字を88ビットで表示できる。
【0047】
同時に、受信側で同じ単語テーブルを用いなければ元の入力データに戻すことができない。したがって、データの通信途中における秘密保持を担保することができる。
【0048】
次に、本発明では、秘密データ(P2)をキャリアとしての秘密画像である原画像(P4)に埋め込むことを考え、更に送信データのサイズを小さくする技術を付加することが可能である。
【0049】
そのために、ロスレス符号化(lossless coding)の一例であるハフマン符号化(Huffman Coding)を用いる。図5は、上記ボキャブラリテーブル(単語テーブル)により変換されたインデックス列における、インデックス(シンボル)の発生回数をまとめたテーブルである。これを参照すると、最も発生回数の大きいシンボルは単語“example”に対応する“6”である。図5のテーブルに基づいて、ハフマンツリー(Huffman Tree)を構成してハフマン符号化を行って、更にデータを短縮することが可能である(ステップS2)。
【0050】
図6は、かかる図5のテーブルに基づいて構成されたハフマンツリーを示す図である。このハフマンツリーにおいて、左分岐に“0”,右分岐に“1”を割り当てる。
【0051】
シンボルの発生回数の大きい順に、ハフマンツリーによりコードを割り当てると図7に示すようなハフマンコードテーブルが得られる。左欄にシンボル、中欄に発生回数、そして右欄にハフマンツリーに基づくハフマンコードを対応して示している。
【0052】
したがって、このハフマンコードテーブルにより先の秘密データ“This is an example of stenography. This example is difficult example.” は、次のようにハフマンコードで表される。
【0053】
秘密データ=001 000 101 01 111 110 001 01 000 100 01
ここで、更に秘密強化のためにポータブル暗号化(Portable Encryption), 例えば、XOR暗号化を用いて秘密データを暗号化することができる(ステップS3)。
【0054】
図8は、XOR暗号化を説明する図であり、暗号化キー(P3)として、例えば、
バイナリ暗号化キー=“ABC”=100000110000101000011を用いる。このバイナリ暗号化キー(P3)を用いて、ハフマンコードをXOR暗号化により暗号化して、より秘密性を高めることができる。
【0055】
図8において、ステップS2で演算したハフマンコードとバイナリ暗号化キー(P3)の先頭ビットを合わせて、XORを求める。次いで、バイナリ暗号化キーを1桁右方向にシフトして、前記XOR演算結果とのXORを演算する。同様に、バイナリ暗号化キーをその最終桁位置が、ハフマンコードの最終桁位置と一致するまで順次シフトしながら繰り返しXORを求める。
【0056】
図8において、最終のXOR演算結果は、“110111110111001110000111010000”という秘密コードになる。
【0057】
次に、この最終のXOR演算結果である秘密コードをキャリアである原画像(P4)に埋め込みステゴ画像を生成して両者を秘匿する(ステップS4)。
【0058】
ここで、実施例として、キャリアへの秘密コードの埋め込みをPPVO法(Pixel based Pixel Value Ordering)を用いて行う。
【0059】
PPVO法は、Qu,他により2015年に提案された。この方法は、スライディング窓を用い、原画像の全てのピクセルを埋め込みに用い、秘密コードの埋め込みの間、ただ一つのピクセルが、スライディング窓において変化され、より高度の埋め込み容量を得ることが可能である。
【0060】
この方法は、参照ピクセルを用いて埋め込ケースを決定する。参照ピクセルが、最大もしくは最小ピクセルと等しい場合、ブロックに秘密データを埋め込むことができることを意味している。
【0061】
秘密データを埋め込む前に、ピクセルを順方向にソートして順序付けられた系列(xπ(1), xπ(2), …, xπ(n-1))を得る(スライディング窓にnピクセルあると想定)。次いで、参照ピクセルを以下のケースに従い修正する。
【0062】
ケース1:xπ(1)≠xπ(n-1)である場合、参照ピクセルxが修正される。そして、秘密コードb∈{0,1}が埋め込まれ、式(1)のように計算される。
【0063】
【数1】
【0064】
ケース2:xπ(1)=xπ(n-1)である場合、系列のピクセルが全て等しいことを意味し、等しい値をVC値と呼び、参照ピクセルは、(2)式のように修正される。
【0065】
【数2】
【0066】
先に背景技術において説明したPVO法は、ピクセルをスムース領域にするブロック仕様に秘密コードを埋め込むので、秘密コードの埋め込みに対して効率的に用いられない。これに対してPPVO法は、非重畳ブロックの代わりにスライディング窓を用いてブロック制約を回避する。このことは、容量と画像品質を著しく改善する。
【0067】
本発明の実施例説明に戻ると、h×wピクセルの原画像X(P4)に埋め込み処理を行う。まず、スライディング窓に対してブロックサイズn×nを設定する。各ブロックに対して、それぞれ上部の左隅のピクセルを参照ピクセル値とし、ピクセルを順方向にソートして参照ピクセルを除く順序列を得る。上記式(1)または(2)に従い、ブロックに秘密コードを埋め込むことが可能か否かを決定する。
【0068】
例えば、PPVO法の処理過程を示す図9において、2×3の原画像X={45, 35, 30, 45, 39, 40}と秘密コードS=10を想定する。
【0069】
最初のピクセル値“45”が参照ピクセルであり、他のピクセルがソートされる。ついで秘密コードを埋め込むブロックを決定するために式(1)を用いると、参照ピクセルは “46”に修正される。
【0070】
スライディング窓の第2のブロック{35, 30, 39, 40}において、第1のピクセル値“35”が参照ピクセルとなり、他のピクセルがソートされる。ついで、参照ピクセル値が最大と最小値の間にあるので、参照ブロックは修正されないので、式(1)を用いてブロックの決定がスキップされる。
【0071】
図2に戻り、原画像(P4)が、埋め込み処理(S4)により秘密コードが埋め込まれたステゴ画像(P5)が得られる。
【0072】
このステゴ画像(P5)が秘密データとしてサーバ2に送られ、秘密データ抽出処理(ステップS5)が行われる。この秘密データ抽出処理(ステップS5)において、原画像(P4)と秘密コード(P6)に分離される。
【0073】
すなわち、秘密データ抽出処理(ステップS5)において、参照ピクセルを除いて、スライディング窓におけるピクセル値がソートされる。そして秘密コード(P6)を抽出し、原画像(P4)のピクセル値を復元することができる。これは、次の式(3)、または(4)を用いて計算できる。
【0074】
【数3】
【0075】
【数4】
【0076】
秘密コード(P6)を抽出した後、上記ステップS1-S3に対応する次の3ステップにより逆処理が行われて秘密データ(P2)を復元する。
【0077】
(1)XOR復号化(ステップS6)
XOR復号化により二値復号化を用いてハフマン符号化された状態の秘密データを復号化する。
【0078】
例えば、秘密コードP6=“11011001010” が抽出され、復号化キーP7=“1000001”ガ入力され、この復号化キーP7を用いてXOR復号化(ステップS6)が行われ、秘密コードP6を復号し、“00100010101”を得る。
【0079】
(2)ハフマン復号化(ステップS7)
ハフマン符号化では、シンボルの全てが一度だけ符号化される。それゆえ、それぞれのシンボルに対して、ユニークな符号ワードがあることを意味する。したがって、ハフマンツリーに従い、圧縮前のシンボルに変換する。
【0080】
上記XOR復号化(ステップS6)により得られた“00100010101”をハフマン復号化すると、001, 000, 101, 01が得られる。
【0081】
(3)単語テーブルによる復元(S8)
単語テーブルに従って、インデックス番号により元の秘密データ(P2)を復元することができる。
【0082】
最終的に単語テーブルを用いると、ハフマン復号化して得られる2値コード列001, 000, 101, 01から元の秘密データ=“This is an example” が復元できる。
【0083】
上記に述べた本発明の適用例として、原画像が患者の医療画像であり、秘密データが患者の医療測定数値等であると想定すると、本発明の適用により、医療画像と患者固有の医療数値データが、送信可能にデータ量が圧縮されるとともに、両者を秘匿した秘密データとして送信することが可能である。
【0084】
したがって、本発明の適用により患者の個人情報を秘匿しながら遠隔地医療を行うようなシステムへの適用も可能である。
【0085】
ここで、上記本発明の効果の実験による実証結果について以下に説明する。
【0086】
本発明者は、Matlab R2015bを用いて本発明方法を構築し、実験のため8つのグレイスケール画像を用いた。8つのグレイスケール画像は、図10に示すようであり、Waterloo Greyscale Set2 (http://links.uwaterloo.ca/Repository.html)から得られる画像であり、512×512標準8ビットのグレイスケール画像である。
【0087】
図11は、ハフマン符号化圧縮に用いるデータ量と生データ量を比較する表である。
【0088】
生データは、ASCIIの15,920文字を有する。それぞれの文字を8ビット2値に変換すると127,360ビットとなる。ハフマン符号化圧縮の段階では、69,044ビット(データ圧縮率1.844, スペース削減率45.78%)であるが、ポータブル暗号化までを行う本発明を用いると、23,781ビット(データ圧縮率5.355, スペース削減率81.32%)まで圧縮することができる。
【0089】
図11におけるデータ圧縮率及びスペース削減率は、式(5),(6)の関係式により計算して求めている。
【0090】
データ圧縮率=生データ量/圧縮データ量 (5)
スペース削減率=(生データ量―圧縮データ量)/生データ量 (6)
【0091】
本発明に従う前処理により78.6%のデータスペース削減が可能である。
【0092】
つぎに、ピーク信号対ノイズ比(PSNR)を用いて原画像とステゴ画像の差を評価する。
【0093】
PSNRは、次式(7)により表される。
【0094】
【数5】
【0095】
ここで、h×wは、全体画像のサイズであり、x'i,jとxi,jは、ステゴ画像と原画像のピクセルである。二つの画像間の差が小さいほど、ステゴ画像は、知覚不能であり、PSNRが大きくなる。反対に、差が大きいほど画像品質が悪く、PSNRが小さくなる。
【0096】
PSNR値に関しては、多くの場合、PPVOはより大きいPSNRになる。PPVOの優れた点は、大きなサイズで明確に示される。非常にスムースな画像、例えばWashsat(図10参照)では、PSNRは、60dB以上が得られる。
【0097】
10,000 と20,000ビットを埋め込み、本発明とPPVOとを比較した。その結果はそれぞれ図12図13の表に示される。
【0098】
図12は、容量が10,000ビットに等しい時、同じ埋め込み容量で、本発明とPPVOの画像品質(dB値)を比較した表である。図13は、容量が20,000ビットに等しい時、同じ埋め込み容量で、本発明とPPVOの画像品質を比較した表である。
【0099】
図12図13において、図10に示す画像ごとに本発明とPPVOとを比較している。ペイロードが10,000ビットであるとき、本発明では、実容量は53,550ビットの埋め込み(隠ぺい)が可能であり、PPVOより約43,550ビット多く、PSNRも平均的に約0.4dB以上になる。
【0100】
ペイロードが20,000ビットであるとき、同様に本発明では、実容量は107,100ビットの埋め込みが可能であり、PPVOより約87,100ビット多く、PSNRも平均的に約0.5dB以上になる。
【0101】
上記したように、本発明により、可逆ステガノグラフィの新しい方法が提供される。
【0102】
データの共用とハフマン符号化によりデータサイズを削減し、これにより埋め込み処理における歪を現象することができる。埋め込みと抽出にはPPVO法を用いる。
【0103】
実験により埋め込み容量を大幅に削減できることを示している。さらに、本発明により秘密データのセキュリティを高めることができる。
【符号の説明】
【0104】
1 端末
2 サーバ
3 ネットワーク
10,20 CPU
11,21 ROM
12,22 入力素子
13,23 RAM
14,24 出力素子
15,25 バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13