卒論発表スライド

E9a5c715acc208d1993e6d7af106652e?s=47 soda1p2
January 14, 2020

 卒論発表スライド

卒論発表で使用したスライドです。現在、他の論文ではこのやり方は非推奨です。Model2はGPU上のメモリに、収束できるだけの画像枚数を載せられなかったため、今回は失敗です。4か月ほどしか時間に充てられていないので、クオリティは低いです。

E9a5c715acc208d1993e6d7af106652e?s=128

soda1p2

January 14, 2020
Tweet

Transcript

  1. 4.

    なぜ今ステガノグラフィー? 今回注目した背景 • コマンドをファイル内に隠したものを利用し、サーバーを操作するマルウェ アが横行 [11] • 既存の検知をすり抜けてしまう • 日本でも被害が出ている(トレンドマイクロなど、数年前から各所で注意喚

    起はなされていた) • SNS 上に画像を上げて、サーバー代わりにしている事例も 「ステガノにほとぼり困ってて、ファイルから直接存在を検知出来る手段がある と良いよね」というこぼれ話が研究動機。 4 / 62
  2. 5.

    ステガノグラフィーの定義 ステガノグラフィーとは • 隠すファイルをテキストや画像、ビデオ、音声などのファイル内に埋め込 み、第 3 者から「ファイルの存在そのものを隠す」ハイディング技術の 1 種 •

    ギリシャ語の「steganos(cover)+grapho(write)」が由来 [10][13] • 類似技術として、Cryptography と digital watermarking の 2 つがある [6][10][8] • 通常、Cryptography を用いて暗号化されたファイルを埋め込むケースが多い [8] 5 / 62
  3. 10.

    steganalysis の定義 steganalysis とは • steganalysis は、steganography の逆 • 一般に、ハイディングされているメッセージを、

    「埋め込まれているファイ ルから」検知する手法 大まかに以下に分けられる。 • target steganalysis: 特定のアルゴリズムに関して検知を行う • universal steganalysis: 任意のアルゴリズムに対して検知を行う • forensic steganalysis: 検知から一歩進めて、ファイルの取り出しを目指す手法 10 / 62
  4. 12.

    Prisoner’s Problem(Simmons, 1983)[15] 一般に、steganography と steganalysis の関係性は、Simmons が 1983 年に発表し

    た、Prisoner’s Problem で表される事が多い。この問題は、旧来あった Prisoner’s Problem の steganography 版である。 12 / 62
  5. 13.
  6. 14.

    初めに 2003 年に開始して以降、論文の数が非常に多い (ここ 5 年くらいで、30 は少なく ともある)。過去の分までさかのぼった内容は [10][4][3] あたりを参照。

    ここではおおざっぱに、 • Deep learning を用いた手法が出る前 • Deep learning を用いた手法 と分けて説明する。universal steganalysis のみ説明する。 14 / 62
  7. 15.

    Deep learning を用いた手法が出る前 univarsal steganalysis については、 • 2002 年の Avicas

    らによる統計的な解析による検知手法の発表が最初の例 [10] • 2003 年に Farid と Lyu による SVM を用いた手法が出て以降、2015 年頃まで 機械学習を用いた手法がメイン [10] 機械学習を用いた検知手法の流れ 1 双方の画像から特徴量を抽出 [9] 2 データセットの形に変換し、分類器 (ANN/SVM) で学習させる [9] 機械学習を用いた検知手法の問題点 一般に以下の問題点が指摘されている。[10] • 画像の特徴量を、 「情報量を落とさずに」どのようにして抽出するか [10] • 「特徴量を抽出した際に情報を落としてしまう」という点が機械学習を用いた 際の欠点 [10] たたみ込みニューラルネットを活用した場合、この変量生成の一部を自動化でき る点が利点。[10] 15 / 62
  8. 16.

    Deep learning Deep learning を用いた手法に関しては、 • 2015 年に Qian などが発表して以降、現在の主流

    [7] • Qian 以降も Couchot、Wu、Ye などが立て続けに発表している [7] • 2018 年現在、最適とされているネットワークは Yedroudji-Net、ReST-Net、 SR-Net の 3 種類 [7] 注意 初期のネットワークに関しては精度が悪い。文献では、png、jpeg のどちらかし か適用出来ないと記載されているが、これは入力に RGB を用いるか、YCbCr を 用いるかの差であり、誤りである。 今回は ResNet モジュールを用いた SRNet を使用する。なお、ResNet 部分に関 しては様々な改良がなされている。 16 / 62
  9. 18.
  10. 19.

    使用したデータセット 今回の実験では、Alaska という大会のデータセットを利用。 データの特徴 • 従来、業界で使用されていた BOSS BASE には、様々な問題が指摘されてい る

    [14] • より現実性を高めたデータセット [5] • 画像のソースを複数用意 (パイプラインを複数作成する事で実現) • アルゴリズムをランダムに用意 • 埋め込み比率もランダム 19 / 62
  11. 22.

    実験方法 実験方法 1 サイズが 256*256 の jpeg カラー画像を 8 万枚用意する

    2 これらの画像に、matlab を使用して埋め込み作業を行なう。使用したアル ゴリズムは、EBS、J-UNIWARD、nsF5、UED の 4 つ。埋め込み比率は、画 像の条件に合わせてランダムに埋め込みを実行した 3 生成された 8 万枚の画像を、Training:73000 枚、Valid:3500 枚、Test:3500 枚 に分割 4 この jpeg 画像に対し、C で書かれた libjpeg を python にビルドするような形 でチャンネルの切り出しを行なう。今回は、YCbCr、YCb、YCr の組み合わ せで切り出しを行なった。 5 以下のモデルに対して、実験を各チャンネルの組み合わせ別に実行する • Model0: SRNet の論文のまま • Model1: 最初のレイヤーのフィルター枚数を 8 枚に設定 • Model2: 最終レイヤーで、平均、分散、最大値、最小値を切り出す 6 これらを精度、FP の 5% 点における TN の値 (MD5 )、FP の値が最小となっ た時の TN と FP の合計 (PE ) 、TN の 50% 点における FP の値 (FP50) の 4 指 標で評価する。 今回は Optimizer として、Adamax[12] を使用した。 22 / 62
  12. 25.

    dct 係数の利用 注意 なお、今回は Hans Georg Schaathun(現在ノルウェーの研究機関所属) が作成した python3 jpeg

    toolbox[16] を使用。C から python にビルドを行なった。そのほか、 matlab 上で使用できる jpeg toolbox などもある。 25 / 62
  13. 29.

    pooling [1] より引用。2 次元マップ 1 枚 1 枚に対して、変量の数を減らす手法。たたみ込 む際に、stride を

    2 以上に設定、層全体のサイズを減らす手法もある。(画像の使 用上の問題で使えず) 29 / 62
  14. 32.
  15. 41.
  16. 42.

    考察:全般 グラフを見る限り、 • Model 1 に関しては、Model0 よりも精度が良かった • 基本は YCbCr

    全てそろえた方が、精度が良かった • Y の成分が抜けると、指標の値が悪くなる • これは、Y の部分が情報を多く持っていることに起因する • その他の指標に関しても概ね同じ結果になった 42 / 62
  17. 44.

    収束性に関して • 4 つのモーメントを取ったことでパーセプトロンの数が 4 倍担った • 収束はしにくくなる • 今回

    1 回のバッチあたりの枚数が 20 枚 • バッチあたりの枚数が少ないと、学習時にここの画像に影響されやすくなる • 結果、学習が進まず、ソフトマックス関数が負の値を取ってしまった 44 / 62
  18. 46.
  19. 47.

    今後の改善点 可変サイズへの対応 一般に画像を処理する際、リサイズを行なう事がある。このリサイズを行なうと 画像の情報量を大きく落としてしまう。ステガノなど、影響されやすい分野では これは良くない。従って、一般に以下の手法がとられる事が多い。 • center crop • smart

    crop dct 係数の利用 今年 Uber の研究チームは、dct 係数を入力に利用することで、精度と計算時間が 良くなっていることを示している。そもそも、dct から YCbCr 形式に直すのはロ スが出る変換であると言われている。 47 / 62
  20. 48.

    References I [1] Charu C Aggarwal. “Neural networks and deep

    learning”. In: Cham: Springer International Publishing (2018). [2] M. Boroumand, M. Chen, and J. Fridrich. “Deep Residual Network for Steganalysis of Digital Images”. In: IEEE Transactions on Information Forensics and Security 14.5 (May 2019), pp. 1181–1193. issn: 1556-6021. doi: 10.1109/TIFS.2018.2871749. [3] Marc Chaumont. “Deep Learning in steganography and steganalysis from 2015 to 2018”. In: CoRR abs/1904.01444 (2019). arXiv: 1904.01444. url: http://arxiv.org/abs/1904.01444. [4] Shaveta Chutani and Anjali Goyal. “A review of forensic approaches to digital image Steganalysis”. In: Multimedia Tools and Applications (2019), pp. 1–36. [5] Rémi Cogranne, Quentin Giboulot, and Patrick Bas. “The ALASKA Steganalysis Challenge: A First Step Towards Steganalysis”. In: Proceedings of the ACM Workshop on Information Hiding and Multimedia Security. IH&MMSec’19. Paris, France: Association for Computing Machinery, 2019, pp. 125–137. isbn: 9781450368216. doi: 10.1145/3335203.3335726. url: https://doi.org/10.1145/3335203.3335726. 48 / 62
  21. 49.

    References II [6] Prasenjit Kumar Das, Mr Pradeep Kumar, and

    Manubolu Sreenivasulu. “Image Cryptography: A Survey towards its Growth”. In: Advance in Electronic and Electric Engineering 4.2 (2014), pp. 179–184. [7] Digital Media Steganography - 1st Edition. https://www.elsevier.com/books/digital-media- steganography/hassaballah/978-0-12-819438-6. (Accessed on 01/14/2020). [8] Prashant Johri et al. “Survey on steganography methods (text, image, audio, video, protocol and network steganography)”. In: 2016 3rd International Conference on Computing for Sustainable Global Development (INDIACom). IEEE. 2016, pp. 2906–2909. [9] Ki-Hyun Jung. “A Study on Machine Learning for Steganalysis”. In: May 2019. doi: 10.1145/3310986.3311000. [10] Konstantinos Karampidis, Ergina Kavallieratou, and Giorgos Papadourakis. “A review of image steganalysis techniques for digital forensics”. In: Journal of information security and applications 40 (2018), pp. 217–235. 49 / 62
  22. 50.

    References III [11] Andrew D Ker et al. “Moving steganography

    and steganalysis from the laboratory into the real world”. In: Proceedings of the first ACM workshop on Information hiding and multimedia security. ACM. 2013, pp. 45–58. [12] Diederik P Kingma and Jimmy Ba. “Adam: A method for stochastic optimization”. In: arXiv preprint arXiv:1412.6980 (2014). [13] Józef Lubacz, Wojciech Mazurczyk, and Krzysztof Szczypiorski. “Principles and overview of network steganography”. In: IEEE Communications Magazine 52.5 (2014), pp. 225–229. [14] Vahid Sedighi, Jessica Fridrich, and Rémi Cogranne. “Toss that BOSSbase, Alice!” In: Electronic Imaging 2016 (Feb. 2016), pp. 1–9. doi: 10.2352/ISSN.2470-1173.2016.8.MWSF-076. [15] Gustavus J Simmons. “The prisoners’ problem and the subliminal channel”. In: Advances in Cryptology. Springer. 1984, pp. 51–67. [16] The jpeg Package — pysteg 1.0 documentation. http://www.ifs.schaathun.net/pysteg/pysteg.jpeg.html. (Accessed on 01/14/2020). 50 / 62
  23. 51.

    References IV [17] Clement Fuji Tsang and Jessica Fridrich. “Steganalyzing

    images of arbitrary size with CNNs”. In: Electronic Imaging 2018.7 (2018), pp. 1–8. 51 / 62
  24. 52.
  25. 53.

    たたみ込みニューラルネットにおける Backpropagation Backpropagation に関する基礎知識は既にあるものと仮定する。Backpropagation は動的計画法の 1 種である。 Backpropagation について たたみ込みニューラルネットでのレイヤーは、大きく

    Convolusion 層、ReLU 層、 Pooling 層に分かれる。Backpropagation の場合も、それぞれに分かれて議論する 事が出来る。 ReLU 層に関する Backpropagation ReLU 層はただ ReLU 関数を適用する層であるから、通常のニューラルネットの 場合と変わらない。 53 / 62
  26. 54.

    Pooling 層での Backpropagation Pool 同士がお互いに重なり合っていると仮定する。ユニット h をある Pooling 層 から任意に取る。

    Pooling 層での Backpropagation ユニット h が含まれているプールを P1 · · · Pr とし、各プールに対応する次の層の ユニットを h1 · · · hr とする。 このとき、プール Pi における最大値が h であるならば、損失関数の hi に関する 導関数に h が含まれるということである。(つまり、h 以外のパーセプトロンはグ ラフ上で隣接していないという事になる) これを考えれば、Pooling の場合も従来のニューラルネットワークの場合と大差 は無いということである。 54 / 62
  27. 56.

    jpeg 圧縮の流れ jpeg 形式の画像のデコード jpeg 画像から YCbCr 形式の配列を抽出するため、以下の処理を実施。 • jpeg

    の coefficient Table を quantisation matrix を利用して元に戻す • 逆 DCT 変換 (DCT type3) で YCbCr の値を抽出する jpeg ファイル内に格納されている coefficient 係数は、DCT (DCT type2) 変換され 得られた物に、quantisation matrix の各要素の値を割って得られたものである。ほ とんどのライブラリで使用されている libjpeg(IJG,1998) では、ベースのテーブル と Quality factor(以下 QF) を用いたテーブルの変換公式が設定されている。 定義 Bi を、ブロック i に対するベースの値、Q ∈ {1, 2, · · · , 100} を QF(ユーザーが設 定、値が低いほど高圧縮) とする。この時、対応するテーブルのブロック i に対 する値 Ai は以下のようになる。 Ai = ⌊ Bi · S + 50 100 ⌋ , where S = { 200 − 2Q Q ≥ 50 5000 Q otherwise 56 / 62
  28. 57.

    python での実装 注意 libjpeg は C 言語で書かれているため、C から python にビルドする形で使用した。

    なお、今回は Hans Georg Schaathun(現在ノルウェーの研究機関所属) が作成した python3 jpeg toolbox を使用している。そのほか、matlab 上で使用できる jpeg toolbox などもある。 注意 以上の説明は完全な物ではない。他の quantalize table も存在する。また、 chromatic channel のダウンサンプリングに関してはここでは触れない。そのほ か、最後のステップで Haffman-coding があるが、これは 1 対 1 対応の関数であ り、理論上ロスが発生しない。 57 / 62
  29. 59.

    DCT 変換 2D type-2 DCT 2 次元の場合、次のように定義できる。 Gx (l, m)

    = √ 2 √ M √ 2 √ M M−1 ∑ i=0 N−1 ∑ j=0 X(i, j) cos (2i + 1)lπ 2N cos (2j + 1)mπ 2N (4) ただし、(M, N) はブロックサイズ、X(i, j) は入力周波数。 注意 各チャンネル単位上の 2 次元ブロックの領域に対して、変換を実施する。つま り、縦と横の方向に変換をかける。 59 / 62
  30. 61.

    研究の問題点 Alaska のデータセットを利用した実験では、様々な問題点が存在する。 Model に関する問題 Yedroudji-Net、ReST-Net、SR-Net のどのネットワークについても、共通で見られ る問題点がある。 • SRNet

    の著者である Yassine Yousf は、Pooling について「画像のハイパス フィルターに相当する部分が取り除かれる、実質的にローパスフィルターに なる」と主張している。 • しかし、近年のネットワークでは、Pooling を使用せず、strided なたたみ込 み操作を行なって、全体のマップサイズを制御する手法がメインである。な ら Pooling を使用しないデータにするべきではないのか。 • CNN は本来、最初の層では’primitive’ な特徴を、後半の層ではこれを切り分 けて複雑な層を扱うという物である。SRNet に限り、最初のフィルターが 64 枚、次のフィルターが 8 枚になっている。(W,H,64) から (W,H,16) のパー セプトロン数に落とすのはこの原則に反している 61 / 62
  31. 62.

    研究の問題点 2 ソースコード面での問題 また、Yassine Yousf は 2 回とも研究に使用したソースコードを公開している。し かしながら、 •

    カラーチャンネルの切り方が違う (プログラムの数字が 1 から始まると勘違 いしていることによるミス) • これにより、(256,2,3) といった本来あり得ないサイズが切り抜かれていた • ソースをよく見ると、4 つのモーメントが取れておらず、平均しかとれてい ない。 といった問題がある。他にもソースコード面で多数のバグ‧ミスが存在していた。 62 / 62