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