完美的隱寫術
歷史包含許多古老的隱寫術的例子。我們也有數字隱寫術。
有沒有一種“完美的隱寫術”,某種意義上只有設計師才能提取隱藏的資訊?
更新 是否有“完美隱寫隱藏”的(正式?)定義,只有密鑰持有者/設計者可以證明可以恢復數據,如果有,是否有任何已知的結構可以滿足它?
“完美的隱寫術”沒有很好的定義。不管是什麼,它都必須遵守Kerckhoff 的原則:對手知道系統的所有資訊,除了非公鑰。這足以排除實際使用中的許多隱寫系統。
我將使用以下基本標準的術語:
- 有效載荷是想要隱蔽傳輸的數字數據;這就是問題的“隱藏資訊”。只有它的大小受到限制。
- 載體是可能隱藏有效載荷的數據。
- 通道是傳輸所述載體的載體,並對載體施加了一組約束(例如:作為符合JPEG語法的最多這樣大小的字節串,儘管可能對填充和註釋欄位有更嚴格的約束)
- 原始數據(如果有的話)是準備載體的數據,具有自己的一組約束(例如,作為消費者數位相機的輸出)和與載體的規定關係(通常是人類對載體的再現)感知必須被視為原件的感知;或者至少是原件的低質量版本)。
隱寫術系統必須允許發送者持有密鑰(可能是公開的)和可能的有效載荷來建構載體;和具有密鑰(相同的對稱密鑰,或與公鑰匹配的私鑰)的接收者來確定該載體中是否存在有效載荷,並在肯定的情況下恢復有效載荷。
對手的目標是區分載體是否攜帶有效載荷(比隨機更好)。接收者必須格外小心,以免洩露該資訊,這很難,尤其是針對活躍的對手。我們可以假設攻擊者可以在大小限制內選擇有效載荷,就像現代密碼學假設選擇明文一樣。
注意:問題的目標“提取隱藏的消息”可能意味著對手試圖減小載體的大小,同時保留在後者給出密鑰時恢復有效載荷的可能性,但這不是通常的目標,我不會不進一步考慮。
有效載荷機密性來自所選有效載荷下的安全性(論點:如果有效載荷是可理解的,則與所選有效載荷的比較將產生一個區分符)。如果沒有假設選擇的有效負載,那麼在隱寫術之上添加有效負載加密無論如何都是微不足道的。
通常,需要額外的屬性:
- 根據頻道限制,原件必須是有效的運營商。
- 即使對手掌握了準備承運人的原件,也可以實現安全目標。
- 當載體中沒有有效載荷時,載體必須與原始載體完全匹配。
- 當沒有嵌入有效載荷時將原件轉換為載體的過程受到限制(例如,某個預先存在的程序)。
屬性 3 暗示 1,與 2 不兼容。通道約束和 4 中的約束有重疊。
注意:我把watermarking放在一邊,即使與隱寫術有重疊。
製作一個明顯安全的隱寫系統的可能性(或不)在很大程度上取決於約束集:通道、原始、有效負載大小和額外屬性。根據案例,有許多約束組合。渠道和原始限制差異很大。有效負載大小的範圍可以從文本
GO
到 TB。最簡單的可證明安全的隱寫術系統是那些約束允許在載體中嵌入比有效載荷長度(壓縮後)更均勻的隨機位的系統。我們可以將載體的這些位設置為真正的隨機性(對於無負載),或者設置為具有密文與隨機無法區分的屬性的負載的某些經過身份驗證的加密的密文(這很容易且常見)。接收器提取比特,執行解密/完整性檢查,如果完整性檢查失敗,則斷定沒有有效負載,否則恢復有效負載。
這樣的系統必須與選擇的完美隱寫術的任何合理定義相匹配(如果不需要可重複使用的密鑰,我們甚至可以使用資訊論 MAC並用One-Time-Pad替換加密,無論對手的計算能力)。
下面是一個具有屬性 2 和 4 的範例,其中 original 是任何 JPEG 文件,通道是具有PAdES 數字簽名的 PDF 文件,該文件使用 4096 位 RSA 每個SHA-512 的RSASSA-PSS。我假設存在一個程序,該程序將 JPEG 文件轉換為簽名的 PDF,該簽名在EMSA-PSS-ENCODE的第 4 步使用 CSPRNG ,閱讀:
生成長度為sLen的隨機八位字節字元串鹽
在上下文中,sLen是 4096-64-512 = 3520 位,根據通道的約束和屬性 4,它可以合法地隨機化。這對於每個 HMAC-SHA-256 的 64 位 MAC 來說已經足夠了,對於 64 位 IV AES-256-CTR 的計數器的最高有效位和 424 字節的有效負載(超過 1k 字節的壓縮文本),當有有效負載時使用而不是隨機八位字節字元串。
當通道不允許任意隨機位時,製作一個可證明安全的隱寫系統變得更加困難。特別是對於屬性 3,對手不能擁有比系統假設的更好的原始模型變得至關重要。