基于SM2/SM3国密算法的数字电影发行密钥实现方法
2022-10-08李雪伟刘知一
李雪伟 刘知一
中国电影科学技术研究所 (中央宣传部电影技术质量检测所),北京 100086
1 引言
近年来,中国电影市场飞速发展,观影人数的激增,观影需求的多元化、个性化发展,为电影版权保护带来了更大的挑战。由于电影密钥传送消息KDM(Key Delivery Message)中携带着节目内容密钥,所以KDM是电影版权保护的关键。现有的保障KDM安全的技术采用了国外密码算法:非对称加密算法RSA-2048算法、摘要算法SHA-256算法,这些算法均受国外专利技术保护。
为推动国密算法在电影行业的应用,保证国家关键信息基础设施安全和自主可控,国家密码管理局于2012年发布了国密标准,包括SM1、SM2、SM3、SM4、SM7、SM9和祖冲之密码算法(ZUC)等,以替代国际加密算法,其中SM2对应RSA算法,SM3对应SHA算法。
2020年1月1日, 《中华人民共和国密码法》正式实施,其中第二十一条规定:国家鼓励商用密码技术的研究开发、学术交流、成果转化和推广应用,鼓励和促进商用密码产业发展。为践行 《中华人民共和国密码法》中鼓励国家商用密码技术开发和推广应用的精神,本文提出了基于SM2/SM3算法的KDM制作模型,该模型利用国密数字证书和国密算法SM2、SM3算法制作KDM,并提出了KDM结果验证模型,以验证生成KDM结果的正确性。
2 相关工作
国密算法SM2/SM3算法自发布之日起,引起了许多学者的关注。林子康将国密算法SM2/SM3应用于移动端的端到端加密通讯系统,该系统利用公钥加密算法SM2、对称加密算法SM4、杂凑算法SM3对实时文字、实时音频和实时视频进行加密实现。杨春雷将国密算法SM2/SM3应用于央行国库信息系统领域,利用SM2/SM3算法实现数字签名服务,建立以国产商业密码为主要支撑的国库信息安全保障体系,实现底层密码算法自主可控。黎水林等将SM2/SM3算法应用在政府网站中,利用SM2算法实现身份认证,采用SM3算法对用户口令等信息进行加密存储,实现了数据传输通道的安全性、重要数据的完整性和保密性、管理用户的真实性等安全需求。苏彬庭等将SM3算法应用于物联网中,使用SM3、SM4算法设计实现了物联网终端的身份鉴别系统,确保了数据的完整性和保密性。王良田将SM2算法应用在数据存储及码流数据传输中,利用SM2、SM4等国密算法实现了码流信息的加密、解密、验签。刘思宇等将SM2/SM3算法应用于二维码验票系统,利用SM4算法对票据信息进行加密,然后利用SM2算法对SM4算法生成的对称密钥进行加密,之后利用SM2、SM3算法对票据进行签名,确保了票据信息的数据安全。陈平等将SM2算法应用于电子病历中,利用SM2算法实现数字签名服务,确保数据完整和隐私保护。
商用密码的应用引起了广电总局的高度重视,广电总局于2017年启动了数字版权保护、应急广播和可下载条件接收系统密码应用试点,并在广播电视科学研究院成立了广电影视国产密码实验室。在广电总局的号召下,各系统开始进行国密算法的改造应用。邹喜等将SM2/SM3算法融入ChinaDRM标准,利用SM2加密算法和SM3杂凑算法实现许可证数据的数字签名和验证,提升了DRM系统的可靠性。刘梦雨等将SM2/SM3应用于多媒体版权保护领域,利用SM2、SM3、SM4算法控制内容的加密、许可证的安全分发及用户的解密,防止内容的滥用和随意分享,达到数字内容的安全使用控制与数字版权保护功能。黄大池等将SM2/SM3算法应用于应急广播村村响系统中,利用SM2、SM3算法对所有控制指令、消息报文的传输进行数字签名,保证了可信应急广播消息的传输安全。
虽然国密算法SM2/SM3自发布之日起,就被陆续应用在各个领域,但是数字电影领域中SM2/SM3还未涉及。
国内学者对KDM的研究主要集中在提高KDM制作的灵活性及并行化处理能力上,如王木旺等提出了一种数字电影KDM再封装制作方法,该方法不通过数字电影编码器,直接由发行方对授权影院生成新的KDM,满足了影院市场放映的灵活性需求。张鑫提出了一种基于Hadoop的KDM并行化制作模型,设计实现了基于Java的多线程制作方案,实现了任意多节点并行化、多线程制作KDM,大幅提高了KDM制作效率。王木旺利用集群负载均衡技术,搭建了KDM授权业务服务器集群和负载均衡系统,提高了KDM授权业务的处理能力和即时响应用户的能力。
与提高KDM制作的并行化处理能力的研究不同,本文将国密算法SM2/SM3应用在KDM制作中,既提高了单个KDM制作的效率,又实现了电影领域加解密算法的自主可控。
3 基于SM2 /SM3 算法的KDM实现
3.1 KDM介绍
密钥传送消息(Key Delivery Message,KDM),是一种基于影院外部消息 (Extra-Theater Message,ETM)定义的XML文件,主要包括3个基本信息:合成播放列表CPL(Composition Play List)的内容密钥;内容密钥参数——主要是密钥使用的日期/时间窗口;可信设备列表 (TDL),指定了允许使用内容密钥的设备。
KDM文件由3部分构成:公开部分、私有部分和签名部分。其中公开部分主要描述了KDM文件的基本信息,如KDM标识、KDM签发者信息、KDM接收者信息、影片名称、合成播放列表的标识、KDM有效期等,这些信息供用户初步筛查KDM是否正确。私有部分描述了KDM文件的关键信息,如AES节目密钥、签名者证书指纹等,供接收设备解密得到AES节目密钥,以解密播放DCP。签名部分描述了KDM文件的数字签名信息,如签名值,签名者的证书链等,供接收设备验证KDM来源是否可靠,以便该设备信任接收的KDM。具体文件结构如图1所示。
图1 KDM文件结构
3.2 基于SM2/SM3算法的KDM制作模型
基于KDM的文件构成,本文提出了基于SM2/SM3算法的KDM制作模型,利用开源密码工具箱GmSSL工具生成SM2私钥和国密X.509数字证书,之后基于母KDM和国密数字证书生成国密KDM文件,具体如图2所示。
图2 基于SM2/SM3算法的KDM制作模型
现将基于SM2/SM3算法的KDM制作模型生成KDM流程和具体实现分析如下:
3.2.1 KDM公开部分制作
(1)模型制作流程
①解析母KDM文件,得到影片基本信息 (影片名称、CPLUUID)和内容密钥的基本信息 (内容密钥类型、内容密钥UUID);
②解析制作者国密证书和设备国密证书,得到KDM签名者信息和KDM接收者信息;
③模型内部自动生成KDM的基本信息:KDM UUID、KDM发行时间、KDM开始时间 (UTC格式)和结束时间 (UTC格式)。
(2)具体实现过程
KDM公开部分,即标签<AuthenticatedPublic>部分,该标签主要包括:MessageId、MessageType、IssueDate、Signer、Recipient、CompositionPlaylistId、Content TitleText、Content KeysNot ValidBefore、Content KeysNot Valid After、Key Type、KeyId等子标签。
根据基于SM2/SM3算法的KDM制作模型,KDM公开部分实现过程如下:
①解析母KDM得到CompositionPlaylistId、Content TitleText、Key Type、KeyId;
②解析制作者国密数字证书,得到Signer值;
③解析接收方国密数字证书,得到Recipient值;
④模型自动生成MessageId及IssueDate;
⑤本模型中Message Type值为固定值:http://www.smpte-ra.org/430-1/2006/KDM#kdmkey-type;
⑥Content KeysNot ValidBefore与Content Keys Not Valid After由模型使用者自定义,模型将其转为UTC时间。
3.2.2 KDM私有部分制作
(1)模型制作流程
①解析母KDM文件,判断母KDM文件是否使用国密加密算法加密,如果是,则跳转到步骤②执行,否则跳转到步骤③执行;
②使用SM2算法解密母KDM文件得到AES节目密钥;
③使用RSA算法解密母KDM文件得到AES节目密钥;
④解析制作者国密证书,得到签名者证书指纹;
⑤将固定值StructureID与上述步骤得到的签名者证书指纹、CPLUUID、内容密钥类型、内容密钥UUID、KDM开始时间 (UTC格式)、KDM结束时间 (UTC格式)、AES节目密钥按顺序进行拼接,之后利用SM2加密算法加密该拼接串得到私有部分中的密文。
(2)具体实现过程
KDM私有部分,即标签<AuthenticatedPrivate>部分,该标签主要包括Encryption Method、Cipher Data。根据基于SM2/SM3算法的KDM制作模型,KDM私有部分实现过程如下:
①本模型中Encryption Method的值为: “http://www.w3.org/2001/04/xmlenc#SM2”;
②本模型中Cipher Data值为表1中8个字段的拼接串经SM2加密算法加密后得到的密文BASE64值,其中:
表1 Cipher Data的明文数据
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由模型使用者自定义该时间,模型转为UTC时间格式;
e.AES Content Decryption Key值为利用SM2私钥解密母KDM得到。
3.2.3 KDM签名部分制作
(1)模型制作流程
①对KDM公开部分和私有部分分别进行C14n规范化;
②利用SM3算法对步骤①规范后的内容分别计算摘要值;
③对步骤②得到的摘要部分进行C14n规范化;
④利用SM2签名算法对步骤③的内容进行签名得到签名值;
⑤解析制作者国密证书链,得到制作者国密证书链信息;
⑥将步骤④与步骤⑤进行拼接得到KDM签名部分。
(2)具体实现过程
KDM签名部分,即标签<Signature>部分,该标签主要包括Canonicalization Method、Signature Method、Digest Method、Digest Value、Signature Value、KeyInfo、X.509Data。
根据基于SM2/SM3算法的KDM制作模型,KDM私有部分实现过程如下:
①本模型中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规范化,之后利用SM3算法计算规范化内容的摘要值;
⑤SignatureValue值为:对摘要部分进行c14n规范化,之后利用SM2签名算法计算签名值;
⑥KeyInfo值为解析制作者签名证书链,得到签名证书链信息;
⑦X.509Data值为签名证书链上的每一个证书信息。
4 实验结果及对比分析
4.1 实验结果
由于现有放映设备使用的KDM均是利用国际通用密码算法生成的,基于SM2/SM3算法的KDM制作模型 (以下简称:国密模型)生成的KDM文件无法在现有放映设备中验证其正确性,为了验证国密模型的结果正确性,本文提出了KDM结果验证模型,如图3所示。
图3 KDM结果验证模型图
本文首先验证基于国际通用密码算法的KDM制作模型 (以下简称:国际通用模型)生成的KDM文件是正确的,之后将国际通用模型和国密模型生成的KDM文件的解密结果进行对比,如果结果一致则本文提出的国密模型生成的KDM文件结果正确。具体验证方法如下:
(1)利用专业电影打包工具Clipster等对影片进行加密打包,生成母KDM和已加密影片;
(2)利用国际通用模型和步骤 (1)生成的母KDM制作生成KDM文件;
(3)将步骤 (2)生成的KDM文件和步骤 (1)生成的已加密影片导入到影院专业放映设备中;
(4)利用影院专业放映设备播放该加密影片,播放成功,则步骤 (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结果验证方法,本文对国密模型生成的KDM文件结果进行验证,实验结果表明该模型生成的KDM文件是正确的。
4.2 实验对比分析
4.2.1 安全性
由于SM2算法是我国在ECC算法基础上自主研制的,该算法推荐了一条256比特的曲线作为标准曲线,它在安全性和实现效率方面相当于256位的ECC算法。有研究表明在相同安全强度下,ECC算法比RSA算法所需的密钥规模要小得多,160位的ECC算法与1024位的RSA算法安全水平相当,210位的ECC算法与2048位的RSA算法安全水平相当。因此SM2算法的安全强度高于RSA-2048算法,大致与RSA-3072相当。
学者汪朝辉等对SM2签名算法和RSA签名算法的实现效率进行了对比,发现在相同的硬件环境下,SM2签名118次/s,RSA-1024签名76次/s,RSA-2048签名13次/s。SM2签名效率高于RSA签名效率。
综上所述,SM2算法与RSA算法相比,有以下优势:
(1)安全性高:256位的SM2算法密码强度已超过RSA-2048。
(2)密钥短:SM2算法用的密钥长度一般是256位,而RSA算法通常需要2048位。
(3)签名速度快:同等安全强度下,SM2签名算法效率高于RSA签名算法。
因此,本文国密算法模型的安全性高于国际通用密码算法模型的安全性。
4.2.2 制作效率
为了证明国密模型生成效率高于国际通用模型,本文分别对两个模型制作KDM的时间进行了统计与对比,统计维度分别为1个、100个、1000个、3000个、5000个,实验环境如表2所示,实验结果如表3所示。
表2 实验环境
表3 国密模型与国际通用模型制作生成KDM的时间 (单位:秒)
从表3的结果可以看出,国密模型制作效率高于国际通用模型。为了进一步分析国密模型与国际通用模型,本文对模型中涉及的解密算法、加密算法、数字签名算法分别进行了对比。结果如表4、表5所示。
表4 国密模型生成KDM时间 (单位:秒)
表5 国际通用模型生成KDM时间 (单位:秒)
从以上的实验对比结果可以发现:国密模型制作效率高于国际通用模型。
5 结语
本文基于KDM的文件构成,提出了基于SM2/SM3算法的KDM制作模型,利用母KDM和国密数字证书生成KDM文件,其中利用国密SM2加密算法对AES节目密钥进行加密,利用SM2signwith-SM3签名技术对KDM文件进行数字签名。为验证本文提出的国密模型的正确性,本文提出了KDM结果验证模型,验证了本文国密模型生成的KDM文件结果正确。实验表明,本文提出的国密模型在安全性和制作效率方面,均高于国际通用模型。
密钥传送消息KDM是电影版权保护的关键技术,本文提出的基于SM2/SM3算法的KDM制作模型,易于实现,能够在现有国际通用模型的基础上实现平滑过渡,为电影领域安全自主可控提供了技术参考。
本文通过将国密算法SM2/SM3应用于KDM中,对于普及国产加密算法,保护电影内容安全具有重要意义。❖