李雪伟 刘知一 王木旺
(中国电影科学技术研究所,北京 100086)
近年来,全球数字电影产业进入新一轮技术革新期,我国个性化放映需求不断增强,电影内容版权保护日益得到关注。另一方面,国家从长远战略的高度提出推动国密算法应用实施、加强行业安全可控的要求,国家商用密码产业链不断完善。数字电影在发行包加密、传输、解密播放等主要环节,目前均通过国外专利密码技术支撑内容的版权保护,在数字电影领域推进国密算法应用,促进我国自主研发的国密算法逐步应用在数字电影关键技术环节,摆脱对国外技术和产品的过度依赖,推动相关设备国产化,势在必行。
2020年1 月1 日,我国首部关于密码的立法《中华人民共和国密码法》(以下简称:《密码法》)施行,其中对密码进行了定义:密码是指采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务,并将密码分为核心密码、普通密码和商用密码。其中核心密码、普通密码用于保护国家秘密信息,商用密码用于保护不属于国家秘密的信息。本文所说的国密算法即国家商用密码算法。
密码,根本上是按照一定的规则对信息进行重新编码,以保证信息的机密性。根据通信双方所持密钥是否相同,密码可分为3大类:对称密码算法、非对称密码算法、杂凑算法。其中对称密码算法是通信双方拥有相同的密钥,即加密密钥和解密密钥相同;非对称密码算法是通信双方拥有不同的密钥,加密密钥和解密密钥不同,二者组成一个公钥、私钥的密钥对;杂凑算法能够将任意长度的消息压缩成固定长度的摘要,能够赋予每个消息唯一的“数字指纹”。
国际上通用的对称密码算法有DES、AES等,非对称密码算法有DSA、RSA、ECC等,杂凑算法有MD5、SHA 等。我国自主研发的国密算法包括SM1、SM2、SM3、SM4、SM7、SM9 和祖冲之密码算法(ZUC)等。其中SM1、SM4、SM7和祖冲之密码 (ZUC)是对称密码算法,SM2 和SM9 是非对称密码算法,SM3是杂凑算法。国密算法与国际通用加密算法的对应关系如表1所示。
表1 国密算法与国际通用加密算法的对应关系
2.1.1 SM1算法
SM1算法是分组密码算法,分组长度和密钥长度均为128比特,该算法将待加密的数据以128比特为一组,分成n组,对每组数据使用128比特长度的密钥进行加密。该算法不公开,仅以IP核的形式存在于芯片中,调用该算法时,需要通过加密芯片的接口进行调用。该算法安全性与国际通用算法AES相当。该算法已被应用于芯片、智能IC 卡、智能密码钥匙、加密卡/机等安全产品。
2.1.2 SM4算法
SM4算法,即SM4 分组密码算法,分组长度和密钥长度均为128比特。该算法主要包含加密算法、解密算法和密钥的拓展算法,该算法加密时对字节数据进行128比特分组,然后使用轮密钥对每组数据进行加密,共进行32轮加密计算,最后得到密文。解密时逆序使用轮密钥对密文进行解密得到原数据。
2.1.3 SM7算法
SM7是分组密码算法,分组长度和密钥长度均为128比特。SM7算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。该算法适用于非接触式IC卡,该算法可应用于身份识别类应用(门禁卡、工作证、参赛证)、票务类应用(大型赛事门票、展会门票)、支付与通卡类应用 (积分消费卡、校园一卡通、企业一卡通)等。
2.1.4 祖冲之序列密码算法
祖冲之算法,简称ZUC,名字源于我国古代数学家祖冲之,由中国科学院等单位自主研究的序列密码算法,该算法初始化阶段输入的初始向量和初始种子密钥均为128 比特,输出的密钥字为32 比特,之后重复32次初始化阶段,第33步舍弃,第34步进入密钥输出阶段,输出密钥字32 比特。该算法由三部分组成:算法描述、基于祖冲之算法的机密性算法和基于祖冲之算法的完整性算法。ZUC算法作为序列密码,安全性本身就优于分组密码。
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》发布。
2.2.1 SM2算法
SM2算法是我国在吸收国际先进成果的基础上研制的具有自主知识产权的椭圆曲线公钥密码算法(elliptic curve cryptography,ECC)。该算法推荐了一条256比特的曲线作为标准曲线,该算法标准主要包括:数字签名算法、密钥交换协议和公钥加密算法。其中SM2数字签名算法由签名者利用自己的私钥对数据签名,验证者利用签名者的公钥对签名进行验证,确保该签名真实可靠;SM2密钥交换协议是用户双方利用自己的私钥和对方的公钥来商定一个只有双方知道的会话密钥。SM2公钥加密算法是发送方利用接收方的公钥对数据进行加密,接收方利用自己的私钥对收到的密文进行解密。
SM2算法于2012年3月成为中国商用密码标准(标准号为GM/T 0003-2012);2016年8月成为国家密码标准 (标准号为GB/T 32918-2016);2017年11月,SM2数字签名算法被纳入ISO/IEC国际标准ISO/IEC 14888-3/AMD1 《带附录的数字签名第3部分:基于离散对数的机制-补篇1》。
2.2.2 SM9算法
SM9标识密码算法是在有限域中,利用椭圆曲线上双线性对构造的基于标识的密码算法。不同于传统的公钥密码算法,SM9算法不需要通过传统公钥基础设施PKI体系中的证书认证中心CA 等保证用户公钥来源的真实性,SM9算法是基于用户的唯一标识信息 (手机号码、邮箱地址等)生成公私钥对,发送方利用公钥加密数据,接收方利用自己的私钥解密数据,无需数字证书的申请、查询、验证和交换环节,极大地减少了计算和存储等资源的开销。SM9算法主要包含数字签名算法、密钥交换算法、密钥封装机制、公钥加密算法等。
SM9算法于2016年3月成为中国商用密码标准(标准号为GM/T 0044-2016),2018年11月,SM9数字签名算法成为ISO/IEC 国际标准,并纳入ISO/IEC 14888-3∶2018 正文发布。2020 年4月成为国家密码标准 (标准号为GB/T 38635-2020)。2021年2月SM9标识加密算法,基于标识的非对称加密算法,作为国际标准ISO/IEC 18033-5∶2015/ADM1∶2021 《信息技术安全技术加密算法第5部分:基于标识的密码补篇1:SM9》正式发布。
SM3算法,又称杂凑算法。该算法可以对一定长度的消息,填充和迭代压缩后,生成长度为256比特的散列值,又称“数字指纹”,即使更改消息中的任意一个字符,对应的杂凑值也会改变。SM3算法常用于数字签名和数据完整性保护。
SM3算法于2012年3月成为中国商用密码标准(标准号为GM/T 0004-2012);2016年8月成为国家密码标准 (标准号为GB/T 32905-2016);2018年10月,国际标准化组织 (ISO)发布了包含我国SM3杂凑算法的ISO/IEC 10118-3∶2018《信息安全技术杂凑函数第3部分:专用杂凑函数》最新一版(第4版),SM3算法正式成为国际标准。
为促进数字电影规范发展,数字电影倡导组织DCI(Digital Cinema Initiatives)发布了 《数字电影系统规范》,为保护数字电影的安全,该规范规定:数字电影发行包必须在加密后才能传输。
(1)内容加密
数字电影由视频和声音组成,一部2小时的数字电影经过JPEG 2000编码后,大小为100G 左右。由于数据量较大,DCI规定电影内容采用加密速度快、加密效率高的高级加密标准AES进行加密,且使用CBC模式,128比特的密钥长度。
发行方生成AES节目密钥,利用该密钥对节目的图像、声音和字幕进行加密,然后将AES节目密钥发送给接收方,接收方利用AES节目密钥对接收到的已加密的电影内容进行解密播放。
(2)内容传输完整
为了保证图像、声音等数据传输的完整性,发行方利用杂凑算法SHA-1对发送的数据计算杂凑值,并将其与数据一同发送给接收方,接收方接收到数据后,利用杂凑算法SHA-1算法对接收到的数据计算杂凑值,并与发行方计算的杂凑值进行对比。若两个值一样,则说明数据在传输的过程中没有被篡改。
(3)密钥传输安全
①AES节目密钥传输安全
由于内容加密使用的是对称密码算法AES,发行方需要把AES密钥发送给接收方,接收方才能正确解密。为了保证AES密钥分发的安全性,DCI规定该AES节目密钥需要利用非对称加密算法RSA,且密钥长度需使用2048比特的RSA-2048算法进行加密。
接收方生成RSA 公私钥,私钥自己保存,RSA公钥发送给发行方,发行方利用接收方的RSA 公钥对AES 节目密钥进行加密,接收方利用自己的RSA 私钥进行解密,获得AES节目密钥。
②RSA 公钥传输安全
发行方需要使用接收方的RSA 公钥对AES节目密钥进行加密,如何保证接收方的RSA 公钥传输的安全性和完整性? DCI利用X509 数字证书保证RSA 公钥传输的安全性及完整性。
数字证书将个人信息与公钥进行绑定,并由权威机构证明其合法性。接收方将RSA 公钥和个人信息发送给权威机构,权威机构利用RSA-2048算法对公钥和个人信息进行加密,并利用RSASHA256算法对其进行数字签名,生成数字证书,发送给接收方。接收方将权威机构生成的数字证书发送给发行方,发行方收到数字证书后,首先验证数字证书的签名是否正确,若正确,则从中提取公钥信息,得到接收方的RSA 公钥。
(4)KDM 正确
DCI规定AES节目密钥需要通过非对称加密算法RSA 加密后保存在密钥传送消息 (Key Delivery Message,KDM)文件中,传送给已授权的影院。KDM 文件是一种基于影院外部消息 (ETM,Extra-Theater Message) 定义的XML 文件。KDM在结构上分为三部分,即公开部分 (Public)、私有部分(Private)和签名部分 (Signature)。为了提高处理速度,发行方利用SHA-256算法分别对KDM的公开部分和私有部分计算杂凑值,然后利用自己的RSA 私钥对公开部分和私有部分的杂凑值进行加密得到KDM 文件的签名值,接收方利用从发行方X509数字证书中提取的发行方的RSA 公钥验证KDM 文件的数字签名是否正确,以确保接收到的KDM 是正确的。
综上所述,为保障数字电影安全,DCI采用了加密效率高的对称加密算法AES-128-CBC 算法加密数据量大的数字电影节目信息,之后采用加密强度大的非对称加密算法RSA-2048算法加密AES节目密钥,并通过X509 数字证书和密钥传送消息KDM 文件进行传输,以提高AES节目密钥的安全性,整个处理流程既高效且可靠。
根据相关学者的研究,国密算法的安全性与国际通用密码算法的安全性相当。汪朝晖等人对比了ECC算法与RSA 算法,得出ECC-210 与RSA-2048安全水平相当,ECC-160与RSA-l024安全强度相当。由于SM2算法是在已有的ECC 算法基础上研制的,SM2算法相当于ECC-256的安全强度,因此SM2算法可以取代RSA 算法,满足各种应用在安全性上的要求,且在相同的安全强度下,SM2算法的密钥长度比RSA 算法的密钥长度更短。姚键,王小云等人的研究表明SM3杂凑算法安全性较高。SM3 杂凑算法与国际通用杂凑算法SHA-256实现效率相当。吕述望等人的研究表明,与国际通用分组密码算法AES算法相比,SM4算法安全性较强。
国密算法自发布之日起,就被陆续应用在互联网通信、银行信息系统、电子政务、物联网、大数据安全、卫生健康、广播电视等领域,利用国密算法实现数据加密、数据防篡改和身份认证等安全需求,保障人民个人隐私与数据安全。
综上所述,国密算法替代国际通用加密算法成为数字电影中的加密技术,为数字电影保驾护航是可行的。为满足国际通用加密算法和国密算法并行运行、实现平滑过渡的需求,本文拟采用以下方案:使用SM4 算法代替AES-128 算法加密节目内容,使用SM3算法代替SHA-1和SHA-256算法计算数据的杂凑值,利用SM2算法代替RSA-2048算法加密节目密钥,使用国密数字证书代替国际X509 数字证书保证公钥传输安全性和KDM 签名正确性,具体如表2所示。
表2 数字电影中国产密码应用方案
本文对国家商用密码算法在数字电影中的应用进行了探讨,主要对国密算法SM1、SM2、SM3、SM4、SM7、SM9、ZUC算法进行了介绍,并结合数字电影中密码技术的应用,提出了数字电影中国密算法应用方案,为电影行业技术人员正确有效使用国密算法提供思路,为推进电影领域国密算法的应用部署提供技术支持,让国产密码为电影行业的发展保驾护航,筑牢电影行业安全防线。