如何使用密碼學來保護影片不被偽造?
由於Deepfake等技術使影片防偽變得非常困難,我想設計一個基於密碼學的方案來驗證影片是否真的被攝像頭擷取。同時,我希望這個影片支持截斷。比如我有一個一小時長的影片,如果我截取一分鐘沒有任何其他變化,那麼這一分鐘的影片是真實的。
一個簡單的方法是使用數字簽名。攝像頭捕捉到的影片流或影片幀是用私鑰簽名的,以便其他人可以驗證。但是,在我的應用場景中,我希望任何人都可以截取一段影片,並證明截取的影片是真實錄製的,而不是偽造的。看來數字簽名的方式不適合這個場景,因為只有影片完整,我們才能證明它的完整性。
消息驗證碼 (MAC) 也可以證明真實性,但這需要分發秘密。
您知道可以在這種情況下使用的任何加密原語或方案嗎?
大多數影片格式會生成周期性的關鍵幀,其中渲染整個圖片,然後指定與前一個圖像不同的後續幀。這是有益的,因為這大大減少了需要傳輸的數據量,同時仍然允許定期搜尋。
可以嵌入覆蓋先前或目前關鍵幀及其後續數據的加密簽名,但影片格式必須支持它。這將是進行操作的侵入性最小的方式,因為如果不進行轉碼,使用者將無法有效地尋找流中除關鍵幀之外的任何點。有時這些偏移量儲存在文件末尾的索引中,並且假設格式支持它,您可以為此添加額外的索引。我無法談論支持這一點的影片格式的內容。
您可能希望在簽名中包含一些額外的元數據,例如流 ID 和關鍵幀計數或時間戳,以避免意外的亂序編輯和拼接。您可能還希望包含完整的標題數據和任何其他結構數據。包含在 TLS 的 MAC 中的數據是適當保護完整記錄不被篡改的一個很好的例子。
當然,所有這些都驗證的是擁有私鑰的人創建了簽名,而不是簽名是誰或數據是否準確。如果您的相機沒有足夠的防篡改能力,惡意方將能夠提取私鑰。如果相機具有防篡改功能,但出現要記錄的虛假或誤導性圖像,它當然會記錄虛假或誤導性數據。密碼學和安全性無法阻止人們將虛假或誤導性數據作為事實呈現。您肯定想諮詢防篡改系統方面的合適專家,以使系統盡可能安全。