Saturday, November 11, 2006

Null Cipher

A null cipher hides the message according to some prearranged set of rules, such as "read every fifth word" or "look at the third character in every word."

一次世界大戰 (WWI) 期間, 一名德國間諜利用 Null Cipher 的方式, 從美國 Washington, D.C. 向位於 Berlin 總部回報了底下這段文字:
PRESIDENT'S EMBARGO RULING SHOULD HAVE IMMEDIATE NOTICE. GRAVE SITUATION AFFECTING INTERNATIONAL LAW. STATEMENT FORESHADOWS RUIN OF MANY NEUTRALS. YELLOW JOURNALS UNIFYING NATIONAL EXCITEMENT
IMMENSELY.
為求慎重, 又發了底下一段文字, 作為確認 (check) 之用:
APPARENTLY NEUTRAL'S PROTEST IS THOROUGHLY DISCOUNTED AND IGNORED. ISMAN HARD HIT. BLOCKADE ISSUE AFFECTS PRETEXT FOR EMBARGO ON BYPRODUCTS, EJECTING SUETS AND VEGETABLE OILS.
如果我們第一段訊息中, 每個字的第一個字母抽出, 或是將第二段訊息中, 每個字的第二個字母抽出, 都可以發現底下的句子:
Pershing sails from NY June 1.
John J. Pershing 是一次大戰期間, 美國遠征軍 (American Expeditionary Force) 的指揮官, 也是二次大戰期間, 美國將領們的良師(mentor)。



上述這個 Null Cipher Message 的例子, 最早我是在 IEEE Computer, February 1998 這期 Neil F. Johnson 與 Sushil Jajodia 的文章 "Exploring Steganography: Seeing the Unseen" 所讀到。

今天, 我在 WebStone 公司的 Stego Suite 網頁所提供的技術論文 "What You Can't See Can Hurt You" (2002), 又讀到了相同的例子。

不過, 上述兩篇論文都把故事發生的時間誤寫成 WWII, 發現這點是因為我後來研讀 Gray C. Kessler 的論文 "An Overview of Steganography for the Computer Forensics Examiner" [ PDF ] 時, 也讀到了這段故事, 不過故事發生的時間卻是在 WWI, 與上述兩篇所寫的 WWII 有出入。

From StegoRN

因此, 我就去翻這些論文的原始參考文獻 "THE CODE BREAKERS - The Comprehensive History of Secret Communication from Ancient Times to the Internet" (David Kahn, 1996), 終於確認時間應該是 WWI。

有趣的是書中 (P. 521) 還提到 Pershing 確實出發的日期應該是 May 28, 而不是 June 1, 顯然這位德國間諜情報有誤, 搞了一次烏龍。

No comments:

Post a Comment