李雪偉 劉知一 王木旺
(中國電影科學技術(shù)研究所,北京 100086)
近年來,全球數(shù)字電影產(chǎn)業(yè)進入新一輪技術(shù)革新期,我國個性化放映需求不斷增強,電影內(nèi)容版權(quán)保護日益得到關(guān)注。另一方面,國家從長遠戰(zhàn)略的高度提出推動國密算法應(yīng)用實施、加強行業(yè)安全可控的要求,國家商用密碼產(chǎn)業(yè)鏈不斷完善。數(shù)字電影在發(fā)行包加密、傳輸、解密播放等主要環(huán)節(jié),目前均通過國外專利密碼技術(shù)支撐內(nèi)容的版權(quán)保護,在數(shù)字電影領(lǐng)域推進國密算法應(yīng)用,促進我國自主研發(fā)的國密算法逐步應(yīng)用在數(shù)字電影關(guān)鍵技術(shù)環(huán)節(jié),擺脫對國外技術(shù)和產(chǎn)品的過度依賴,推動相關(guān)設(shè)備國產(chǎn)化,勢在必行。
2020年1 月1 日,我國首部關(guān)于密碼的立法《中華人民共和國密碼法》(以下簡稱:《密碼法》)施行,其中對密碼進行了定義:密碼是指采用特定變換的方法對信息等進行加密保護、安全認證的技術(shù)、產(chǎn)品和服務(wù),并將密碼分為核心密碼、普通密碼和商用密碼。其中核心密碼、普通密碼用于保護國家秘密信息,商用密碼用于保護不屬于國家秘密的信息。本文所說的國密算法即國家商用密碼算法。
密碼,根本上是按照一定的規(guī)則對信息進行重新編碼,以保證信息的機密性。根據(jù)通信雙方所持密鑰是否相同,密碼可分為3大類:對稱密碼算法、非對稱密碼算法、雜湊算法。其中對稱密碼算法是通信雙方擁有相同的密鑰,即加密密鑰和解密密鑰相同;非對稱密碼算法是通信雙方擁有不同的密鑰,加密密鑰和解密密鑰不同,二者組成一個公鑰、私鑰的密鑰對;雜湊算法能夠?qū)⑷我忾L度的消息壓縮成固定長度的摘要,能夠賦予每個消息唯一的“數(shù)字指紋”。
國際上通用的對稱密碼算法有DES、AES等,非對稱密碼算法有DSA、RSA、ECC等,雜湊算法有MD5、SHA 等。我國自主研發(fā)的國密算法包括SM1、SM2、SM3、SM4、SM7、SM9 和祖沖之密碼算法(ZUC)等。其中SM1、SM4、SM7和祖沖之密碼 (ZUC)是對稱密碼算法,SM2 和SM9 是非對稱密碼算法,SM3是雜湊算法。國密算法與國際通用加密算法的對應(yīng)關(guān)系如表1所示。
表1 國密算法與國際通用加密算法的對應(yīng)關(guān)系
2.1.1 SM1算法
SM1算法是分組密碼算法,分組長度和密鑰長度均為128比特,該算法將待加密的數(shù)據(jù)以128比特為一組,分成n組,對每組數(shù)據(jù)使用128比特長度的密鑰進行加密。該算法不公開,僅以IP核的形式存在于芯片中,調(diào)用該算法時,需要通過加密芯片的接口進行調(diào)用。該算法安全性與國際通用算法AES相當。該算法已被應(yīng)用于芯片、智能IC 卡、智能密碼鑰匙、加密卡/機等安全產(chǎn)品。
2.1.2 SM4算法
SM4算法,即SM4 分組密碼算法,分組長度和密鑰長度均為128比特。該算法主要包含加密算法、解密算法和密鑰的拓展算法,該算法加密時對字節(jié)數(shù)據(jù)進行128比特分組,然后使用輪密鑰對每組數(shù)據(jù)進行加密,共進行32輪加密計算,最后得到密文。解密時逆序使用輪密鑰對密文進行解密得到原數(shù)據(jù)。
2.1.3 SM7算法
SM7是分組密碼算法,分組長度和密鑰長度均為128比特。SM7算法不公開,調(diào)用該算法時,需要通過加密芯片的接口進行調(diào)用。該算法適用于非接觸式IC卡,該算法可應(yīng)用于身份識別類應(yīng)用(門禁卡、工作證、參賽證)、票務(wù)類應(yīng)用(大型賽事門票、展會門票)、支付與通卡類應(yīng)用 (積分消費卡、校園一卡通、企業(yè)一卡通)等。
2.1.4 祖沖之序列密碼算法
祖沖之算法,簡稱ZUC,名字源于我國古代數(shù)學家祖沖之,由中國科學院等單位自主研究的序列密碼算法,該算法初始化階段輸入的初始向量和初始種子密鑰均為128 比特,輸出的密鑰字為32 比特,之后重復(fù)32次初始化階段,第33步舍棄,第34步進入密鑰輸出階段,輸出密鑰字32 比特。該算法由三部分組成:算法描述、基于祖沖之算法的機密性算法和基于祖沖之算法的完整性算法。ZUC算法作為序列密碼,安全性本身就優(yōu)于分組密碼。
ZUC算法于2011年9月被3GPPLTE采納為國際加密標準(標準號為TS35.221),即第4代移動通信加密標準,是我國第一個成為國際密碼標準的密碼算法;2012 年3 月成為中國商用密碼標準(標準號為GM/T 0001-2012);2016年10月成為國家密碼標準 (標準號為GB/T 33133-2016);2020年4月,正式成為ISO/IEC國際標準,并納入ISO/IEC 18033-4/AMD1 《加密算法第4部分:序列算法-補篇1》發(fā)布。
2.2.1 SM2算法
SM2算法是我國在吸收國際先進成果的基礎(chǔ)上研制的具有自主知識產(chǎn)權(quán)的橢圓曲線公鑰密碼算法(elliptic curve cryptography,ECC)。該算法推薦了一條256比特的曲線作為標準曲線,該算法標準主要包括:數(shù)字簽名算法、密鑰交換協(xié)議和公鑰加密算法。其中SM2數(shù)字簽名算法由簽名者利用自己的私鑰對數(shù)據(jù)簽名,驗證者利用簽名者的公鑰對簽名進行驗證,確保該簽名真實可靠;SM2密鑰交換協(xié)議是用戶雙方利用自己的私鑰和對方的公鑰來商定一個只有雙方知道的會話密鑰。SM2公鑰加密算法是發(fā)送方利用接收方的公鑰對數(shù)據(jù)進行加密,接收方利用自己的私鑰對收到的密文進行解密。
SM2算法于2012年3月成為中國商用密碼標準(標準號為GM/T 0003-2012);2016年8月成為國家密碼標準 (標準號為GB/T 32918-2016);2017年11月,SM2數(shù)字簽名算法被納入ISO/IEC國際標準ISO/IEC 14888-3/AMD1 《帶附錄的數(shù)字簽名第3部分:基于離散對數(shù)的機制-補篇1》。
2.2.2 SM9算法
SM9標識密碼算法是在有限域中,利用橢圓曲線上雙線性對構(gòu)造的基于標識的密碼算法。不同于傳統(tǒng)的公鑰密碼算法,SM9算法不需要通過傳統(tǒng)公鑰基礎(chǔ)設(shè)施PKI體系中的證書認證中心CA 等保證用戶公鑰來源的真實性,SM9算法是基于用戶的唯一標識信息 (手機號碼、郵箱地址等)生成公私鑰對,發(fā)送方利用公鑰加密數(shù)據(jù),接收方利用自己的私鑰解密數(shù)據(jù),無需數(shù)字證書的申請、查詢、驗證和交換環(huán)節(jié),極大地減少了計算和存儲等資源的開銷。SM9算法主要包含數(shù)字簽名算法、密鑰交換算法、密鑰封裝機制、公鑰加密算法等。
SM9算法于2016年3月成為中國商用密碼標準(標準號為GM/T 0044-2016),2018年11月,SM9數(shù)字簽名算法成為ISO/IEC 國際標準,并納入ISO/IEC 14888-3∶2018 正文發(fā)布。2020 年4月成為國家密碼標準 (標準號為GB/T 38635-2020)。2021年2月SM9標識加密算法,基于標識的非對稱加密算法,作為國際標準ISO/IEC 18033-5∶2015/ADM1∶2021 《信息技術(shù)安全技術(shù)加密算法第5部分:基于標識的密碼補篇1:SM9》正式發(fā)布。
SM3算法,又稱雜湊算法。該算法可以對一定長度的消息,填充和迭代壓縮后,生成長度為256比特的散列值,又稱“數(shù)字指紋”,即使更改消息中的任意一個字符,對應(yīng)的雜湊值也會改變。SM3算法常用于數(shù)字簽名和數(shù)據(jù)完整性保護。
SM3算法于2012年3月成為中國商用密碼標準(標準號為GM/T 0004-2012);2016年8月成為國家密碼標準 (標準號為GB/T 32905-2016);2018年10月,國際標準化組織 (ISO)發(fā)布了包含我國SM3雜湊算法的ISO/IEC 10118-3∶2018《信息安全技術(shù)雜湊函數(shù)第3部分:專用雜湊函數(shù)》最新一版(第4版),SM3算法正式成為國際標準。
為促進數(shù)字電影規(guī)范發(fā)展,數(shù)字電影倡導組織DCI(Digital Cinema Initiatives)發(fā)布了 《數(shù)字電影系統(tǒng)規(guī)范》,為保護數(shù)字電影的安全,該規(guī)范規(guī)定:數(shù)字電影發(fā)行包必須在加密后才能傳輸。
(1)內(nèi)容加密
數(shù)字電影由視頻和聲音組成,一部2小時的數(shù)字電影經(jīng)過JPEG 2000編碼后,大小為100G 左右。由于數(shù)據(jù)量較大,DCI規(guī)定電影內(nèi)容采用加密速度快、加密效率高的高級加密標準AES進行加密,且使用CBC模式,128比特的密鑰長度。
發(fā)行方生成AES節(jié)目密鑰,利用該密鑰對節(jié)目的圖像、聲音和字幕進行加密,然后將AES節(jié)目密鑰發(fā)送給接收方,接收方利用AES節(jié)目密鑰對接收到的已加密的電影內(nèi)容進行解密播放。
(2)內(nèi)容傳輸完整
為了保證圖像、聲音等數(shù)據(jù)傳輸?shù)耐暾?發(fā)行方利用雜湊算法SHA-1對發(fā)送的數(shù)據(jù)計算雜湊值,并將其與數(shù)據(jù)一同發(fā)送給接收方,接收方接收到數(shù)據(jù)后,利用雜湊算法SHA-1算法對接收到的數(shù)據(jù)計算雜湊值,并與發(fā)行方計算的雜湊值進行對比。若兩個值一樣,則說明數(shù)據(jù)在傳輸?shù)倪^程中沒有被篡改。
(3)密鑰傳輸安全
①AES節(jié)目密鑰傳輸安全
由于內(nèi)容加密使用的是對稱密碼算法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é)目密鑰。
②RSA 公鑰傳輸安全
發(fā)行方需要使用接收方的RSA 公鑰對AES節(jié)目密鑰進行加密,如何保證接收方的RSA 公鑰傳輸?shù)陌踩院屯暾? DCI利用X509 數(shù)字證書保證RSA 公鑰傳輸?shù)陌踩约巴暾浴?/p>
數(shù)字證書將個人信息與公鑰進行綁定,并由權(quán)威機構(gòu)證明其合法性。接收方將RSA 公鑰和個人信息發(fā)送給權(quán)威機構(gòu),權(quán)威機構(gòu)利用RSA-2048算法對公鑰和個人信息進行加密,并利用RSASHA256算法對其進行數(shù)字簽名,生成數(shù)字證書,發(fā)送給接收方。接收方將權(quán)威機構(gòu)生成的數(shù)字證書發(fā)送給發(fā)行方,發(fā)行方收到數(shù)字證書后,首先驗證數(shù)字證書的簽名是否正確,若正確,則從中提取公鑰信息,得到接收方的RSA 公鑰。
(4)KDM 正確
DCI規(guī)定AES節(jié)目密鑰需要通過非對稱加密算法RSA 加密后保存在密鑰傳送消息 (Key Delivery Message,KDM)文件中,傳送給已授權(quán)的影院。KDM 文件是一種基于影院外部消息 (ETM,Extra-Theater Message) 定義的XML 文件。KDM在結(jié)構(gòu)上分為三部分,即公開部分 (Public)、私有部分(Private)和簽名部分 (Signature)。為了提高處理速度,發(fā)行方利用SHA-256算法分別對KDM的公開部分和私有部分計算雜湊值,然后利用自己的RSA 私鑰對公開部分和私有部分的雜湊值進行加密得到KDM 文件的簽名值,接收方利用從發(fā)行方X509數(shù)字證書中提取的發(fā)行方的RSA 公鑰驗證KDM 文件的數(shù)字簽名是否正確,以確保接收到的KDM 是正確的。
綜上所述,為保障數(shù)字電影安全,DCI采用了加密效率高的對稱加密算法AES-128-CBC 算法加密數(shù)據(jù)量大的數(shù)字電影節(jié)目信息,之后采用加密強度大的非對稱加密算法RSA-2048算法加密AES節(jié)目密鑰,并通過X509 數(shù)字證書和密鑰傳送消息KDM 文件進行傳輸,以提高AES節(jié)目密鑰的安全性,整個處理流程既高效且可靠。
根據(jù)相關(guān)學者的研究,國密算法的安全性與國際通用密碼算法的安全性相當。汪朝暉等人對比了ECC算法與RSA 算法,得出ECC-210 與RSA-2048安全水平相當,ECC-160與RSA-l024安全強度相當。由于SM2算法是在已有的ECC 算法基礎(chǔ)上研制的,SM2算法相當于ECC-256的安全強度,因此SM2算法可以取代RSA 算法,滿足各種應(yīng)用在安全性上的要求,且在相同的安全強度下,SM2算法的密鑰長度比RSA 算法的密鑰長度更短。姚鍵,王小云等人的研究表明SM3雜湊算法安全性較高。SM3 雜湊算法與國際通用雜湊算法SHA-256實現(xiàn)效率相當。呂述望等人的研究表明,與國際通用分組密碼算法AES算法相比,SM4算法安全性較強。
國密算法自發(fā)布之日起,就被陸續(xù)應(yīng)用在互聯(lián)網(wǎng)通信、銀行信息系統(tǒng)、電子政務(wù)、物聯(lián)網(wǎng)、大數(shù)據(jù)安全、衛(wèi)生健康、廣播電視等領(lǐng)域,利用國密算法實現(xiàn)數(shù)據(jù)加密、數(shù)據(jù)防篡改和身份認證等安全需求,保障人民個人隱私與數(shù)據(jù)安全。
綜上所述,國密算法替代國際通用加密算法成為數(shù)字電影中的加密技術(shù),為數(shù)字電影保駕護航是可行的。為滿足國際通用加密算法和國密算法并行運行、實現(xiàn)平滑過渡的需求,本文擬采用以下方案:使用SM4 算法代替AES-128 算法加密節(jié)目內(nèi)容,使用SM3算法代替SHA-1和SHA-256算法計算數(shù)據(jù)的雜湊值,利用SM2算法代替RSA-2048算法加密節(jié)目密鑰,使用國密數(shù)字證書代替國際X509 數(shù)字證書保證公鑰傳輸安全性和KDM 簽名正確性,具體如表2所示。
表2 數(shù)字電影中國產(chǎn)密碼應(yīng)用方案
本文對國家商用密碼算法在數(shù)字電影中的應(yīng)用進行了探討,主要對國密算法SM1、SM2、SM3、SM4、SM7、SM9、ZUC算法進行了介紹,并結(jié)合數(shù)字電影中密碼技術(shù)的應(yīng)用,提出了數(shù)字電影中國密算法應(yīng)用方案,為電影行業(yè)技術(shù)人員正確有效使用國密算法提供思路,為推進電影領(lǐng)域國密算法的應(yīng)用部署提供技術(shù)支持,讓國產(chǎn)密碼為電影行業(yè)的發(fā)展保駕護航,筑牢電影行業(yè)安全防線。