0引言
中共中央、国务院在2020年4月9日印发了《关于构建更加完善的要素市场化配置体制机制的意见》,明确提出数据是一种新型生产要素,要通过加快数据要素市场培育,充分发挥数据要素对其他要素效率的倍增作用,使大数据成为推动经济高质量发展的新动能。数据参与经济建设、社会治理、生活服务,发挥着重要作用。数据信息安全是数据信息应用的基础。发展数字经济、加快培育发展数据要素市场,必须把保障数据安全放在突出位置,安全问题是所有工作的前提和底线。这就要求我们着力解决数据安全领域的突出问题,有效提升数据安全治理能力。在数字化建设过程中,会收集、使用和加工大量个人信息,如果这些信息不采取措施妥善保护,不法之徒将会利用这些个人信息侵扰人民群众生活安宁,危害人民群众生命健康和财产安全。加强数据信息的保护,提高数据安全治理能力,维护国家安全和个人权益已经迫在眉睫。
2021年9月1日正式实施的《中华人民共和国数据安全法》(以下简称《数据安全法》)第4条规定“维护数据安全,应当坚持总体国家安全观,建立健全数据安全治理体系,提高数据安全保障能力。”要建立健全数据安全治理体系,需在数据的收集、存储、使用、加工、传输、提供、公开等各个处理环节,实施完善的安全策略、人员责任、安全作业等治理手段,并部署相关的数据安全产品。构建数据安全治理体系,还需对数据进行分类分级管理,但是考虑到成本,数据加密技术的应用能在业务快速迭代背景下使数据安全得到显著提升。同年11月1日《中华人民共和国个人信息保护法》(以下简称《个人信息保护法》)也正式颁布实施,进一步明确了个人信息处理规则、跨境提供规则、个人在个人信息处理活动中的权利和义务、履行个人信息保护职责的部门及法律责任。统筹了个人主体和公权力机关的义务与责任,同时兼顾个人信息保护与利用,为个人信息保护工作提供了法律依据,保护信息所有人的隐私权,避免个人隐私遭到泄露。个人信息保护已成为广大人民群众最关心的现实利益问题之一。
加强数据信息的保护,使用户在主动化、自动化、智能化、服务化、实战化等需求时得到保护,有助于清除个人信息的无序滥用、私下转卖等行业弊病的发展障碍,有利于推动形成利于数字经济快速、健康、平稳发展的市场环境,保障数字经济高速发展。个人信息保护是经济发展的需要,也是时代进步的需要。
1国密算法
国密算法即国家商用密码算法,通常用商用密码的拼音SM表示,简称国密,是国家用于非国家机密信息保护所采用的一系列密码技术和密码产品的总称。密码算法标准及其应用规范由国家密码管理局认定和公布,其中部分密码算法已经成为国际标准。2020年1月1日颁布实施的《中华人民共和国密码法》(以下简称《密码法》)规定“密码分为核心密码、普通密码和商用密码”“法律、行政法规和国家有关规定要求使用商用密码进行保护的关键信息基础设施,其运营者应当使用商用密码进行保护”。《密码法》进一步明确使用国密算法来保护关键信息基础设施和个人信息。目前已公布的国密算法如表1所例。
表1 国密算法
序号 |
密码分类 |
国密算法 |
|
1 |
对称加密 |
分组加密/块加密 |
SM1(SCB2)、SM4(SMS4)、SM7 |
2 |
序列加密/流加密 |
ZUC(祖冲之算法)、SSF46 |
|
3 |
非对称/公钥加密 |
离散对数 |
SM2、SM9 |
4 |
密码杂凑/散列 |
SM3 |
在对称加密算法中,SM1、SM7密码算法目前还没有公开,仅以IP核的形式存在于芯片中,使用该算法需使用对应的芯片、加密卡或者加密机。对称加密SM4分组密码算法和SM3密码杂凑算法的算法均对外公开,可以根据公开的算法编写不同语言的程序供系统使用。
1.1国密SM3密码杂凑算法原理
国密SM3密码杂凑算法通常称作摘要算法、散列算法,或者Hash算法,是密码学中的基础算法,是现代密码学中的核心组成部分。密码杂凑算法是将任意大小(例如文本消息)的输入信息数据转换为固定大小(例如256位长度)的结果,这个结果称为杂凑值(或消息摘要、哈希码、哈希值)。比如SM3密码杂凑算法,可将任意输入转换为256位长度输出。
SM3密码杂凑算法采用默克尔-达姆加德(Merkle-Damgard)结构,消息分组长度为512Bit,输出的摘要值长度为256Bit。SM3密码杂凑算法的输入长度为Bit的消息,经过填充、分组、迭代压缩后生成杂凑值,杂凑值输出长度为256位。算法过程为:
第一步:填充,通过填充使加密数据的长度是512Bit的整数倍。首先在数据的末尾加一个1,然后把原始数据的长度用64Bit表示,并放在最后面,再看现在的数据的长度值离512的整数倍还差多少位,差多少位就在加的这个1和64Bit的之间填多少个0。
第二步:分组,把填充后的信息按照512Bit一个组进行分组,如分成了N组,标注为b(0),b(1)……b(N-1) 。
第三步:迭代压缩,SM3算法的压缩函数和SHA-256算法的压缩函数类似,但SM3的压缩函数更复杂。通过迭代压缩得到最后的杂凑值 IV(n)=CF(IV(n-1),b(n-1)),其中CF为压缩函数、IV为初始值,如果信息分为N组,那么IV(N)就是最后得到的杂凑值。
SM3密码杂凑算法主要有三个特点:一是具有确定性,相同的消息总是能得到同样的摘要值,并且不管消息长度是多少,最终的摘要值长度也是相同的;二是难以分析且不可逆,算法具有雪崩效应,对输入消息的微小改变会对杂凑值产生巨大影响,通过杂凑值很难逆向计算出原始消息;三是没有碰撞性,试图找到两个具有相同杂凑值的不同消息几乎不可能。正是基于SM3密码杂凑算法的这些特点,该算法才广泛用于数字签名与验证、消息认证码的生成与验证及随机数的生成。
本文探索的信息保护方法也是利用该算法来进行消息验证和“一次一密”密码的生成。
2.2国密SM4分组密码算法原理
对称分组密码算法SM4是一种迭代分组密码算法,采用非平衡费斯妥(Feistel,以德国的物理学家和密码学家霍斯特·费斯妥命名)结构,分组长度为128Bit,秘钥长度也为128Bit。加密流程分为明文加密与密钥扩展(每次密钥的生成)两部分。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(word,长度为32Bit的组)为单位进行加密运算。SM4分组密码算法的数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
分组密码算法只能处理特定长度的信息数据,而在实际应用中待加密的明文数据的长度是不固定的,这就需要对分组密码的算法进行迭代,将一段很长的明文全部加密,而迭代的方法就是分组模式,一次迭代运算为一轮变换。
迭代分组加密流程如图1所示。
图1 迭代分组加密流程
分组密码在加密中有5种分组工作模式,分别为电子密码本(Electronic Code Book,ECB)模式、密码块链接(Cipher Block Chaining,CBC)模式、密码反馈(Cipher Feedback,CFB)模式、输出反馈(Output Feedback,OFB)模式和计数器(CounTeR,CTR)模式。推荐使用CBC和CTR模式,其中CBC密码块链接模式的密文分组像链条一样互相连接在一起。
CBC分组工作模式加密过程如图2所示。
图2 CBC分组模式加密过程
这种分组工作模式,将一个明文分组和一个密文分组进行异或(Exclusive OR,XOR)运算,然后再进行加密。其特点就是每个密文块都依赖与它前边的所有明文块,明文分组在加密之前一定会与“前一个密文分组”进行XOR运算,因此即使明文分组1和明文分组2的值是相等的,密文分组1和2的值也不相等。算法的抗攻击性和安全性都更高了。
3 基于国密的保护方法实现
个人信息的保护就是最大限度地保障个人信息在采集、传输、存储和应用过程中的安全。在个人信息的保护过程中通常需要解决三个关键问题: 一是如何选择适当的信息数据加密方式及机制,同时考虑加密效率;二是在信息数据以加密形态存储的情况下,如何实现对目标信息数据的精确查找和搜索,并兼顾信息的使用效率;三是在确保信息数据隐私性安全的情况下,要保证数据的一致性和可用性。
基于国密的个人信息保护方法,将充分利用SM3密码杂凑算法和SM4分组密码算法等国密算法的特点,依靠关键信息的杂凑值产生“一次一密”密码,对个人信息进行加密,实现对相同的个人信息也因密码不同使加密后的密文也不同,同时使用个人信息的杂凑值进行高效的精确查找和搜索。
3.1实现方法
信息系统收集的个人信息为便于数据信息的管理和利用,实际使用中通常采用数据库进行存储和使用。个人信息保护的首要措施是对个人信息的加密,个人信息加密分为存储加密和传输加密。存储加密是在数据写入存储介质前将数据进行加密,实现对数据的加密存储,实现的方式复杂多样,是一种对个人信息最有效的保护方式。传输加密是对传输中的信息数据流加密,保证传输通道、传输节点和传输信息数据的安全,防止通信线路上的窃听、泄漏、篡改和破坏。通常系统使用Web服务,只需启用安全传输层协议(Transport Layer Security,TLS)就能实现个人信息传输中的安全。
基于个人信息保护过程中的三个关键问题,可通过SM3密码杂凑算法对需要防串改的关键信息进行信息认证形成摘要信息(即256Bit杂凑值),取信息认证的杂凑值第一位使用y=(ax+b) mod 32和Substring(y,y+32)截取128Bit值,并和128Bit密码进行异或形成“一次一密”密码。用生成的“一次一密”密码对需要保护的个人信息使用SM4分组密码算法进行加密,利用SM3密码杂凑算法对个人信息形成的杂凑值用于精确查找和搜索,实现基于国密算法、兼顾效率和安全的个人信息保护模式。
个人信息加密保护过程如图3所示。
图3 个人信息加密保护过程
例如在房屋交易业务过程中系统需采集购房人信息和购房合同信息。在数据库中建立房屋交易合同表(如表2所例)用来保存采集的购房人姓名、身份证号和签订的合同文本信息等。
表2 房屋交易合同表
序号 |
字段名称 |
类型 |
字段含义 |
1 |
id |
Bigint |
ID号 |
2 |
username |
Varchar(200) |
购房人姓名 |
3 |
idnumber |
Varchar(200) |
身份证件号码 |
4 |
idnumberhash |
Varchar(200) |
证件号码杂凑值 |
5 |
idnumberciphertext |
Varchar(1000) |
证件号码加密信息 |
6 |
contract |
Text |
合同文本原文信息 |
7 |
contracthash |
Varchar(200) |
合同杂凑值 |
8 |
inserttime |
Timestamp |
系统录入时间 |
合同信息作为关键信息需防范被串改,身份证件号码作为重要个人信息需进行加密保护。为了测试加密后信息的使用效率,数据库表中保留了身份证件号码的明文,实际使用不保存身份证件号码明文信息。
为了便于演示说明个人信息加密保护过程,模拟系统采集购房合同信息。首先使用随机函数生成购房人姓名、身份证件号码,再向PostgreSQL数据库中循环插入100万条购房信息记录。信息数据生成后,使用SM3密码杂凑算法对身份证件号码和合同信息进行杂凑计算形成对应的杂凑值。身份证件号码的杂凑值用来对身份证号码进行精确查找和搜索,合同信息的杂凑值用来校验合同信息防止信息被非法修改,同时合同信息的杂凑值也用来生成“一次一密”秘钥。
按照图3所示流程,对身份证件号码的杂凑值首位数值进行线性变化,取余后,从余数位开始截取32位字符串,并和固定秘钥进行异或计算,生成“一次一密”的128Bit(32位字符串)密码,利用生成的“一次一密”秘钥使用SM4分组密码算法(CBC模式)加密身份证件号码,使存储的个人身份证件号码信息为加密字符串,达到保护个人信息的目的。生成“一次一密”的程序代码如下:
加密后数据库存储的信息数据如图4所示。
图4 数据库存储的加密数据
个人信息身份证件号码通过SM4分组密码算法加密得到保护,并且使用“一次一密”秘钥可以使相同的身份证件号码加密的密文不一样,加强了个人信息的保护。相同身份证件号码使用“一次一密”加密信息后结果如图5所示,因身份证号为系统随机产生,非实际真实号码,图表中身份证号信息为方便表述说明,未进行脱敏处理。
图5 “一次一密”加密结果
3.2 信息加密后的使用效率
个人信息加密后信息得到了保护,但个人信息采集存储的目的是个人信息的使用。个人信息的加密保护不能为了保护而不考虑信息使用,如何高效的利用个人信息是采集个人信息后首先需要考虑的问题。通过个人身份证号码明文查询和加密密文查询进行对比,检验个人信息加密后使用效率的损耗。
明文查询,根据个人身份证号码明文直接进行数据库精确匹配查询并显示,记录系统所耗时间,这种利用方式也是最普通常见的,主要代码如下:
密文查询,对要查找的个人身份证件号码信息进行SM3杂凑计算,用生成的杂凑值进行数据库精确匹配查询,利用检索结果中的关键信息计算“一次一密”秘钥,再利用秘钥使用SM4(CBC模式)解密个人身份证号码并显示。主要代码如下:
系统运行后效率为明文查询948ms,加密查询1160ms,运行结果如图6所示。因数据库未做优化处理,在100万数据库记录里面查询,个人信息加密后精确查询比直接明文查询慢了22.36%。效率损失不大。损耗的效率可以通过提高硬件计算能力、优化数据库弥补。在一个约500万数据记录的房屋交易信息系统实际使用中,加密后的精确检索带来的效率损耗在可接受范围内,不影响业务的正常办理。
图6 信息的查询效率比较
4 结束语
数据安全是数据应用的基础,个人信息作为数据资源的重要组成部分,应该受到严格保护。特别是在《数据安全法》《个人信息保护法》和《密码法》等法律法规颁布实施后,对个人信息保护和使用国密算法具有强制力。个人信息的安全隐患主要集中在信息的传输、存储和使用三个环节,其核心是信息数据的加密保护。结合数据安全治理和个人隐私保护要点和具体要求,健全数据治理体系,遵循《数据安全法》《个人信息保护法》等数据安全的有关法律法规和标准技术规范,建立数据安全保护体系,防止重要数据和个人信息被泄露、篡改和滥用。
针对数据安全治理和个人信息的加密保护,在国密算法的合规性要求下,提出了一种兼顾个人信息使用效率的保护方法。该保护办法通过SM3密码杂凑算法、线性变换和异或处理生成“一次一密”秘钥,利用生成的秘钥和SM4分组密码算法对个人敏感信息进行加密保护;个人信息使用时,通过个人信息的杂凑值进行高效精准查询,查询到信息后再利用秘钥和SM4分组密码算法解密使用。基于国密的这种个人信息保护方法在房屋交易信息系统中进行了实际应用,以应用带动了发展和技术创新,同时兼顾个人信息的利用,构建了新的数据信息保护方案,为数据全生命周期安全管理和防护提供了技术支撑。
参 考 文 献:
[1]金潇,陈兴,董胜亚.电信行业商用密码的个人信息保护实践[J].网络空间安全,2021,12(Z4):43-53.
[2]陈伟,张平,戴华等.新型网络安全风险的管控技术与对策[J].南京邮电大学学报(社会科学版),2021,23(04):1-10.DOI:10.14132/j.cnki.nysk.20210906.002.
[3]程子栋,王鹏彪,罗海宁.对数字政府安全技术合规分析的建议[J].中国信息安全,2022(08):35-38.
[4]杨婕.解析我国规制个人信息泄露问题的法律路径[J].信息通信技术与政策,2021,47(09):65-71.
[5]曲忠芳,李正豪.个人信息保护上了“安全锁” 企业合规面临大考[N].中国经营报,2021-08-30(C01).
[6]中华人民共和国个人信息保护法[N].人民日报,2021-08-23(014).
[7]王磊.大数据视域下个人信息民法保护研究[D].哈尔滨:黑龙江大学,2022.
[8]戴聪.基于国密算法和模糊提取的多因素身份认证方案[J].计算机应用,2021,41(S2):139-145.
[9]张德强.浅析智慧城市建设中个人信息的保护[J].网络安全技术与应用,2023,No.268(04):111-113.