李雪偉 劉知一
中國電影科學(xué)技術(shù)研究所 (中央宣傳部電影技術(shù)質(zhì)量檢測所),北京 100086
近年來,中國電影市場飛速發(fā)展,觀影人數(shù)的激增,觀影需求的多元化、個性化發(fā)展,為電影版權(quán)保護帶來了更大的挑戰(zhàn)。由于電影密鑰傳送消息KDM(Key Delivery Message)中攜帶著節(jié)目內(nèi)容密鑰,所以KDM是電影版權(quán)保護的關(guān)鍵。現(xiàn)有的保障KDM安全的技術(shù)采用了國外密碼算法:非對稱加密算法RSA-2048算法、摘要算法SHA-256算法,這些算法均受國外專利技術(shù)保護。
為推動國密算法在電影行業(yè)的應(yīng)用,保證國家關(guān)鍵信息基礎(chǔ)設(shè)施安全和自主可控,國家密碼管理局于2012年發(fā)布了國密標準,包括SM1、SM2、SM3、SM4、SM7、SM9和祖沖之密碼算法(ZUC)等,以替代國際加密算法,其中SM2對應(yīng)RSA算法,SM3對應(yīng)SHA算法。
2020年1月1日, 《中華人民共和國密碼法》正式實施,其中第二十一條規(guī)定:國家鼓勵商用密碼技術(shù)的研究開發(fā)、學(xué)術(shù)交流、成果轉(zhuǎn)化和推廣應(yīng)用,鼓勵和促進商用密碼產(chǎn)業(yè)發(fā)展。為踐行 《中華人民共和國密碼法》中鼓勵國家商用密碼技術(shù)開發(fā)和推廣應(yīng)用的精神,本文提出了基于SM2/SM3算法的KDM制作模型,該模型利用國密數(shù)字證書和國密算法SM2、SM3算法制作KDM,并提出了KDM結(jié)果驗證模型,以驗證生成KDM結(jié)果的正確性。
國密算法SM2/SM3算法自發(fā)布之日起,引起了許多學(xué)者的關(guān)注。林子康將國密算法SM2/SM3應(yīng)用于移動端的端到端加密通訊系統(tǒng),該系統(tǒng)利用公鑰加密算法SM2、對稱加密算法SM4、雜湊算法SM3對實時文字、實時音頻和實時視頻進行加密實現(xiàn)。楊春雷將國密算法SM2/SM3應(yīng)用于央行國庫信息系統(tǒng)領(lǐng)域,利用SM2/SM3算法實現(xiàn)數(shù)字簽名服務(wù),建立以國產(chǎn)商業(yè)密碼為主要支撐的國庫信息安全保障體系,實現(xiàn)底層密碼算法自主可控。黎水林等將SM2/SM3算法應(yīng)用在政府網(wǎng)站中,利用SM2算法實現(xiàn)身份認證,采用SM3算法對用戶口令等信息進行加密存儲,實現(xiàn)了數(shù)據(jù)傳輸通道的安全性、重要數(shù)據(jù)的完整性和保密性、管理用戶的真實性等安全需求。蘇彬庭等將SM3算法應(yīng)用于物聯(lián)網(wǎng)中,使用SM3、SM4算法設(shè)計實現(xiàn)了物聯(lián)網(wǎng)終端的身份鑒別系統(tǒng),確保了數(shù)據(jù)的完整性和保密性。王良田將SM2算法應(yīng)用在數(shù)據(jù)存儲及碼流數(shù)據(jù)傳輸中,利用SM2、SM4等國密算法實現(xiàn)了碼流信息的加密、解密、驗簽。劉思宇等將SM2/SM3算法應(yīng)用于二維碼驗票系統(tǒng),利用SM4算法對票據(jù)信息進行加密,然后利用SM2算法對SM4算法生成的對稱密鑰進行加密,之后利用SM2、SM3算法對票據(jù)進行簽名,確保了票據(jù)信息的數(shù)據(jù)安全。陳平等將SM2算法應(yīng)用于電子病歷中,利用SM2算法實現(xiàn)數(shù)字簽名服務(wù),確保數(shù)據(jù)完整和隱私保護。
商用密碼的應(yīng)用引起了廣電總局的高度重視,廣電總局于2017年啟動了數(shù)字版權(quán)保護、應(yīng)急廣播和可下載條件接收系統(tǒng)密碼應(yīng)用試點,并在廣播電視科學(xué)研究院成立了廣電影視國產(chǎn)密碼實驗室。在廣電總局的號召下,各系統(tǒng)開始進行國密算法的改造應(yīng)用。鄒喜等將SM2/SM3算法融入ChinaDRM標準,利用SM2加密算法和SM3雜湊算法實現(xiàn)許可證數(shù)據(jù)的數(shù)字簽名和驗證,提升了DRM系統(tǒng)的可靠性。劉夢雨等將SM2/SM3應(yīng)用于多媒體版權(quán)保護領(lǐng)域,利用SM2、SM3、SM4算法控制內(nèi)容的加密、許可證的安全分發(fā)及用戶的解密,防止內(nèi)容的濫用和隨意分享,達到數(shù)字內(nèi)容的安全使用控制與數(shù)字版權(quán)保護功能。黃大池等將SM2/SM3算法應(yīng)用于應(yīng)急廣播村村響系統(tǒng)中,利用SM2、SM3算法對所有控制指令、消息報文的傳輸進行數(shù)字簽名,保證了可信應(yīng)急廣播消息的傳輸安全。
雖然國密算法SM2/SM3自發(fā)布之日起,就被陸續(xù)應(yīng)用在各個領(lǐng)域,但是數(shù)字電影領(lǐng)域中SM2/SM3還未涉及。
國內(nèi)學(xué)者對KDM的研究主要集中在提高KDM制作的靈活性及并行化處理能力上,如王木旺等提出了一種數(shù)字電影KDM再封裝制作方法,該方法不通過數(shù)字電影編碼器,直接由發(fā)行方對授權(quán)影院生成新的KDM,滿足了影院市場放映的靈活性需求。張鑫提出了一種基于Hadoop的KDM并行化制作模型,設(shè)計實現(xiàn)了基于Java的多線程制作方案,實現(xiàn)了任意多節(jié)點并行化、多線程制作KDM,大幅提高了KDM制作效率。王木旺利用集群負載均衡技術(shù),搭建了KDM授權(quán)業(yè)務(wù)服務(wù)器集群和負載均衡系統(tǒng),提高了KDM授權(quán)業(yè)務(wù)的處理能力和即時響應(yīng)用戶的能力。
與提高KDM制作的并行化處理能力的研究不同,本文將國密算法SM2/SM3應(yīng)用在KDM制作中,既提高了單個KDM制作的效率,又實現(xiàn)了電影領(lǐng)域加解密算法的自主可控。
密鑰傳送消息(Key Delivery Message,KDM),是一種基于影院外部消息 (Extra-Theater Message,ETM)定義的XML文件,主要包括3個基本信息:合成播放列表CPL(Composition Play List)的內(nèi)容密鑰;內(nèi)容密鑰參數(shù)——主要是密鑰使用的日期/時間窗口;可信設(shè)備列表 (TDL),指定了允許使用內(nèi)容密鑰的設(shè)備。
KDM文件由3部分構(gòu)成:公開部分、私有部分和簽名部分。其中公開部分主要描述了KDM文件的基本信息,如KDM標識、KDM簽發(fā)者信息、KDM接收者信息、影片名稱、合成播放列表的標識、KDM有效期等,這些信息供用戶初步篩查KDM是否正確。私有部分描述了KDM文件的關(guān)鍵信息,如AES節(jié)目密鑰、簽名者證書指紋等,供接收設(shè)備解密得到AES節(jié)目密鑰,以解密播放DCP。簽名部分描述了KDM文件的數(shù)字簽名信息,如簽名值,簽名者的證書鏈等,供接收設(shè)備驗證KDM來源是否可靠,以便該設(shè)備信任接收的KDM。具體文件結(jié)構(gòu)如圖1所示。
圖1 KDM文件結(jié)構(gòu)
基于KDM的文件構(gòu)成,本文提出了基于SM2/SM3算法的KDM制作模型,利用開源密碼工具箱GmSSL工具生成SM2私鑰和國密X.509數(shù)字證書,之后基于母KDM和國密數(shù)字證書生成國密KDM文件,具體如圖2所示。
圖2 基于SM2/SM3算法的KDM制作模型
現(xiàn)將基于SM2/SM3算法的KDM制作模型生成KDM流程和具體實現(xiàn)分析如下:
3.2.1 KDM公開部分制作
(1)模型制作流程
①解析母KDM文件,得到影片基本信息 (影片名稱、CPLUUID)和內(nèi)容密鑰的基本信息 (內(nèi)容密鑰類型、內(nèi)容密鑰UUID);
②解析制作者國密證書和設(shè)備國密證書,得到KDM簽名者信息和KDM接收者信息;
③模型內(nèi)部自動生成KDM的基本信息:KDM UUID、KDM發(fā)行時間、KDM開始時間 (UTC格式)和結(jié)束時間 (UTC格式)。
(2)具體實現(xiàn)過程
KDM公開部分,即標簽<AuthenticatedPublic>部分,該標簽主要包括:MessageId、MessageType、IssueDate、Signer、Recipient、CompositionPlaylistId、Content TitleText、Content KeysNot ValidBefore、Content KeysNot Valid After、Key Type、KeyId等子標簽。
根據(jù)基于SM2/SM3算法的KDM制作模型,KDM公開部分實現(xiàn)過程如下:
①解析母KDM得到CompositionPlaylistId、Content TitleText、Key Type、KeyId;
②解析制作者國密數(shù)字證書,得到Signer值;
③解析接收方國密數(shù)字證書,得到Recipient值;
④模型自動生成MessageId及IssueDate;
⑤本模型中Message Type值為固定值:http://www.smpte-ra.org/430-1/2006/KDM#kdmkey-type;
⑥Content KeysNot ValidBefore與Content Keys Not Valid After由模型使用者自定義,模型將其轉(zhuǎn)為UTC時間。
3.2.2 KDM私有部分制作
(1)模型制作流程
①解析母KDM文件,判斷母KDM文件是否使用國密加密算法加密,如果是,則跳轉(zhuǎn)到步驟②執(zhí)行,否則跳轉(zhuǎn)到步驟③執(zhí)行;
②使用SM2算法解密母KDM文件得到AES節(jié)目密鑰;
③使用RSA算法解密母KDM文件得到AES節(jié)目密鑰;
④解析制作者國密證書,得到簽名者證書指紋;
⑤將固定值StructureID與上述步驟得到的簽名者證書指紋、CPLUUID、內(nèi)容密鑰類型、內(nèi)容密鑰UUID、KDM開始時間 (UTC格式)、KDM結(jié)束時間 (UTC格式)、AES節(jié)目密鑰按順序進行拼接,之后利用SM2加密算法加密該拼接串得到私有部分中的密文。
(2)具體實現(xiàn)過程
KDM私有部分,即標簽<AuthenticatedPrivate>部分,該標簽主要包括Encryption Method、Cipher Data。根據(jù)基于SM2/SM3算法的KDM制作模型,KDM私有部分實現(xiàn)過程如下:
①本模型中Encryption Method的值為: “http://www.w3.org/2001/04/xmlenc#SM2”;
②本模型中Cipher Data值為表1中8個字段的拼接串經(jīng)SM2加密算法加密后得到的密文BASE64值,其中:
表1 Cipher Data的明文數(shù)據(jù)
a.Structure ID為固定值:f1.dc.12.44.60.16.9a.0e.85.bc.30.06.42.f8.66.ab;
b.Certificate Thumbprint值從簽名者國密證書中解析得到;
c.CompositionPlaylistId、Key Type、KeyId值從母KDM中解析得到;
d.Not Valid Before與Not Valid After由模型使用者自定義該時間,模型轉(zhuǎn)為UTC時間格式;
e.AES Content Decryption Key值為利用SM2私鑰解密母KDM得到。
3.2.3 KDM簽名部分制作
(1)模型制作流程
①對KDM公開部分和私有部分分別進行C14n規(guī)范化;
②利用SM3算法對步驟①規(guī)范后的內(nèi)容分別計算摘要值;
③對步驟②得到的摘要部分進行C14n規(guī)范化;
④利用SM2簽名算法對步驟③的內(nèi)容進行簽名得到簽名值;
⑤解析制作者國密證書鏈,得到制作者國密證書鏈信息;
⑥將步驟④與步驟⑤進行拼接得到KDM簽名部分。
(2)具體實現(xiàn)過程
KDM簽名部分,即標簽<Signature>部分,該標簽主要包括Canonicalization Method、Signature Method、Digest Method、Digest Value、Signature Value、KeyInfo、X.509Data。
根據(jù)基于SM2/SM3算法的KDM制作模型,KDM私有部分實現(xiàn)過程如下:
①本模型中Canonicalization Method值為"http://www.w3.org/TR/2001/REC-xml-c14n-2001 0315#WithComments";
②Signature Method值為"http://www.w3.org/2001/04/xmldsig-more#SM3WithSM2";
③Digest Method值為 “http://www.w3.org/2001/04/xmlenc#SM3”;
④Digest Value值為:對待計算摘要值的部分進行c14n規(guī)范化,之后利用SM3算法計算規(guī)范化內(nèi)容的摘要值;
⑤SignatureValue值為:對摘要部分進行c14n規(guī)范化,之后利用SM2簽名算法計算簽名值;
⑥KeyInfo值為解析制作者簽名證書鏈,得到簽名證書鏈信息;
⑦X.509Data值為簽名證書鏈上的每一個證書信息。
由于現(xiàn)有放映設(shè)備使用的KDM均是利用國際通用密碼算法生成的,基于SM2/SM3算法的KDM制作模型 (以下簡稱:國密模型)生成的KDM文件無法在現(xiàn)有放映設(shè)備中驗證其正確性,為了驗證國密模型的結(jié)果正確性,本文提出了KDM結(jié)果驗證模型,如圖3所示。
圖3 KDM結(jié)果驗證模型圖
本文首先驗證基于國際通用密碼算法的KDM制作模型 (以下簡稱:國際通用模型)生成的KDM文件是正確的,之后將國際通用模型和國密模型生成的KDM文件的解密結(jié)果進行對比,如果結(jié)果一致則本文提出的國密模型生成的KDM文件結(jié)果正確。具體驗證方法如下:
(1)利用專業(yè)電影打包工具Clipster等對影片進行加密打包,生成母KDM和已加密影片;
(2)利用國際通用模型和步驟 (1)生成的母KDM制作生成KDM文件;
(3)將步驟 (2)生成的KDM文件和步驟 (1)生成的已加密影片導(dǎo)入到影院專業(yè)放映設(shè)備中;
(4)利用影院專業(yè)放映設(shè)備播放該加密影片,播放成功,則步驟 (2)生成的KDM文件是正確的,播放失敗,則步驟 (2)生成的KDM文件是錯誤的;
(5)利用RSA私鑰對步驟 (2)生成的正確的KDM文件進行解密解析,分別得到表1中8個字段值;
(6)利用國密模型和步驟 (1)生成的母KDM制作生成KDM文件;
(7)利用SM2私鑰對步驟 (6)生成的KDM文件進行解密解析,分別得到表1中8個字段值;
(8)對比步驟 (5)和步驟 (7)中8個字段的值,如果其中Structure ID、CompositionPlaylistId、Key Type、KeyId、AES Content Decryption Key 5個字段值分別相等,則步驟 (6)生成的KDM文件是正確的,否則錯誤。
基于以上KDM結(jié)果驗證方法,本文對國密模型生成的KDM文件結(jié)果進行驗證,實驗結(jié)果表明該模型生成的KDM文件是正確的。
4.2.1 安全性
由于SM2算法是我國在ECC算法基礎(chǔ)上自主研制的,該算法推薦了一條256比特的曲線作為標準曲線,它在安全性和實現(xiàn)效率方面相當(dāng)于256位的ECC算法。有研究表明在相同安全強度下,ECC算法比RSA算法所需的密鑰規(guī)模要小得多,160位的ECC算法與1024位的RSA算法安全水平相當(dāng),210位的ECC算法與2048位的RSA算法安全水平相當(dāng)。因此SM2算法的安全強度高于RSA-2048算法,大致與RSA-3072相當(dāng)。
學(xué)者汪朝輝等對SM2簽名算法和RSA簽名算法的實現(xiàn)效率進行了對比,發(fā)現(xiàn)在相同的硬件環(huán)境下,SM2簽名118次/s,RSA-1024簽名76次/s,RSA-2048簽名13次/s。SM2簽名效率高于RSA簽名效率。
綜上所述,SM2算法與RSA算法相比,有以下優(yōu)勢:
(1)安全性高:256位的SM2算法密碼強度已超過RSA-2048。
(2)密鑰短:SM2算法用的密鑰長度一般是256位,而RSA算法通常需要2048位。
(3)簽名速度快:同等安全強度下,SM2簽名算法效率高于RSA簽名算法。
因此,本文國密算法模型的安全性高于國際通用密碼算法模型的安全性。
4.2.2 制作效率
為了證明國密模型生成效率高于國際通用模型,本文分別對兩個模型制作KDM的時間進行了統(tǒng)計與對比,統(tǒng)計維度分別為1個、100個、1000個、3000個、5000個,實驗環(huán)境如表2所示,實驗結(jié)果如表3所示。
表2 實驗環(huán)境
表3 國密模型與國際通用模型制作生成KDM的時間 (單位:秒)
從表3的結(jié)果可以看出,國密模型制作效率高于國際通用模型。為了進一步分析國密模型與國際通用模型,本文對模型中涉及的解密算法、加密算法、數(shù)字簽名算法分別進行了對比。結(jié)果如表4、表5所示。
表4 國密模型生成KDM時間 (單位:秒)
表5 國際通用模型生成KDM時間 (單位:秒)
從以上的實驗對比結(jié)果可以發(fā)現(xiàn):國密模型制作效率高于國際通用模型。
本文基于KDM的文件構(gòu)成,提出了基于SM2/SM3算法的KDM制作模型,利用母KDM和國密數(shù)字證書生成KDM文件,其中利用國密SM2加密算法對AES節(jié)目密鑰進行加密,利用SM2signwith-SM3簽名技術(shù)對KDM文件進行數(shù)字簽名。為驗證本文提出的國密模型的正確性,本文提出了KDM結(jié)果驗證模型,驗證了本文國密模型生成的KDM文件結(jié)果正確。實驗表明,本文提出的國密模型在安全性和制作效率方面,均高于國際通用模型。
密鑰傳送消息KDM是電影版權(quán)保護的關(guān)鍵技術(shù),本文提出的基于SM2/SM3算法的KDM制作模型,易于實現(xiàn),能夠在現(xiàn)有國際通用模型的基礎(chǔ)上實現(xiàn)平滑過渡,為電影領(lǐng)域安全自主可控提供了技術(shù)參考。
本文通過將國密算法SM2/SM3應(yīng)用于KDM中,對于普及國產(chǎn)加密算法,保護電影內(nèi)容安全具有重要意義。?