加密算法在數(shù)字電影中的應用

為促進數(shù)字電影規(guī)范發(fā)展,數(shù)字電影倡導組織DCI(Digital Cinema Initiatives)發(fā)布了《數(shù)字電影系統(tǒng)規(guī)范》,其中為保護數(shù)字電影的安全,要求數(shù)字電影發(fā)行包必須在加密后才能傳輸。下面我們就一起來看一下加密算法在數(shù)字電影中的應用。

內容加密

數(shù)字電影由視頻和聲音組成,一部2小時的數(shù)字電影經過JPEG 2000編碼后,大小為100G左右。由于數(shù)據(jù)量較大,DCI規(guī)定電影內容采用加密速度快、加密效率高的高級加密標準AES進行加密,且使用CBC模式、128比特的密鑰長度。

發(fā)行方生成AES節(jié)目密鑰,利用該密鑰對節(jié)目的圖像、聲音和字幕進行加密,然后將AES節(jié)目密鑰發(fā)送給接收方,接收方利用AES節(jié)目密鑰對接收到的已加密的電影內容進行解密播放。

數(shù)字電影加密

內容傳輸完整

為了保證圖像、聲音等數(shù)據(jù)傳輸?shù)耐暾?,發(fā)行方利用雜湊算法SHA-1對發(fā)送的數(shù)據(jù)計算雜湊值,并將其與數(shù)據(jù)一同發(fā)送給接收方,接收方接收到數(shù)據(jù)后,利用雜湊算法SHA-1算法對接收到的數(shù)據(jù)計算雜湊值,并與發(fā)行方計算的雜湊值進行對比。若兩個值一樣,則說明數(shù)據(jù)在傳輸?shù)倪^程中沒有被篡改。

密鑰傳輸安全

  • AES節(jié)目密鑰傳輸安全

由于內容加密使用的是對稱密碼算法AES,發(fā)行方需要把AES密鑰發(fā)送給接收方,接收方才能正確解密。為了保證AES密鑰分發(fā)的安全性,DCI規(guī)定該AES節(jié)目密鑰需要利用非對稱加密算法RSA,且密鑰長度需使用2048比特的RSA-2048算法進行加密。

接收方生成RSA公私鑰,私鑰自己保存,RSA公鑰發(fā)送給發(fā)行方,發(fā)行方利用接收方的RSA公鑰對AES節(jié)目密鑰進行加密,接收方利用自己的RSA私鑰進行解密,獲得AES節(jié)目密鑰。

數(shù)字電影加密

  • RSA公鑰傳輸安全

發(fā)行方需要使用接收方的RSA公鑰對AES節(jié)目密鑰進行加密,那么如何保證接收方的RSA公鑰傳輸?shù)陌踩院屯暾阅兀緿CI利用X509數(shù)字證書保證RSA公鑰傳輸?shù)陌踩约巴暾浴?/p>

數(shù)字證書將個人信息與公鑰進行綁定,并由權威機構證明其合法性。接收方將RSA公鑰和個人信息發(fā)送給權威機構,權威機構利用RSA-2048算法對公鑰和個人信息進行加密,并利用RSA-SHA256算法對其進行數(shù)字簽名,生成數(shù)字證書,發(fā)送給接收方。接收方將權威機構生成的數(shù)字證書發(fā)送給發(fā)行方,發(fā)行方收到數(shù)字證書后,首先驗證數(shù)字證書的簽名是否正確,若正確,則從中提取公鑰信息,得到接收方的RSA公鑰。

KDM正確

DCI規(guī)定AES節(jié)目密鑰需要通過非對稱加密算法RSA加密后保存在密鑰傳送消息(Key Delivery Message,KDM)文件中,傳送給已授權的影院。KDM文件是一種基于影院外部消息(ETM,Extra-Theater Message) 定義的 XML 文件。KDM 在結構上分為三部分,即公開部分(Public)、私有部分(Private)和簽名部分(Signature)。為了提高處理速度,發(fā)行方利用SHA-256算法分別對KDM的公開部分和私有部分計算雜湊值,然后利用自己的RSA私鑰對公開部分和私有部分的雜湊值進行加密得到KDM文件的簽名值,接收方利用從發(fā)行方X509數(shù)字證書中提取的發(fā)行方的RSA公鑰驗證KDM文件的數(shù)字簽名是否正確,以確保接收到的KDM是正確的。

數(shù)字電影加密


綜上所述,為保障數(shù)字電影安全,DCI采用了加密效率高的對稱加密算法AES-128-CBC算法加密數(shù)據(jù)量大的數(shù)字電影節(jié)目信息,之后采用加密強度大的非對稱加密算法RSA-2048算法加密AES節(jié)目密鑰,并通過X509數(shù)字證書和密鑰傳送消息KDM文件進行傳輸,以提高AES節(jié)目密鑰的安全性,整個處理流程既高效且可靠。

免責聲明:素材源于網絡,如有侵權,請聯(lián)系刪稿。