书书书犐犆犛13.310犃90!#$%&’’()*犌犅/犜38566—2020!#$%&’()*+,-./0123456犆犻狏犻犾犿犻犾犻狋犪狉狔犮狅犿犿狅狀狉犲狊狅狌狉犮犲狊—犛犲犮狌狉犻狋狔犮狅狀狏犲狉狊犻狅狀犪狀犱犪狀狋犻犮狅狌狀狋犲狉犳犲犻狋犻狀犵狊狆犲犮犻犳犻犮犪狋犻狅狀犳狅狉犻狀犳狅狉犿犪狋犻狅狀犮狅犱犲2020030678202010019:’(+,-./012’()*3/045678书书书目 次前言Ⅲ…………………………………………………………………………………………………………1 范围1………………………………………………………………………………………………………2 规范性引用文件1…………………………………………………………………………………………3 术语和定义1………………………………………………………………………………………………4 缩略语2……………………………………………………………………………………………………5 要求2……………………………………………………………………………………………………… 5.1 转换对象及其数据安全认证2……………………………………………………………………… 5.2 安全转换2…………………………………………………………………………………………… 5.3 防伪图码4…………………………………………………………………………………………… 5.4 信息转换安全4……………………………………………………………………………………… 5.5 安全保障4……………………………………………………………………………………………6 试验方法4………………………………………………………………………………………………… 6.1 安全验证4…………………………………………………………………………………………… 6.2 防伪图码防伪验证5…………………………………………………………………………………附录A(规范性附录) CLA数字签名格式规范6…………………………………………………………附录B(规范性附录) 基础设施安全管理要求9…………………………………………………………参考文献14……………………………………………………………………………………………………Ⅰ犌犅/犜38566—2020前 言 本标准按照GB/T1.1—2009给出的规则起草。本标准由全国防伪标准化技术委员会(SAC/TC218)提出并归口。本标准起草单位:中国防伪行业协会、军事科学院法制研究院、中国人民解放军国防大学联合勤务学院、北京鼎九信息工程研究院有限公司、61912部队、中防验证(北京)网络服务平台股份有限公司、吉林省通程科技有限公司、北京百旺信安科技有限公司。本标准主要起草人:陈锡蓉、于学东、刘志、李英、李增欣、邱庆、杨恒亮、刘文、钱鲁锋、隆亮、王力猛、杨国明、林斌、刘颖。Ⅲ犌犅/犜38566—2020军民通用资源信息代码的安全转换与防伪技术规范1 范围本标准规定了信息代码的安全转换对象及其数据安全认证、安全转换、防伪图码、信息转换安全、安全保障等要求和试验方法。本标准适用于军民不同标准体系之间军民通用资源信息代码的安全转换与防伪。2 规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T22258—2008 防伪标识通用技术条件GB/T29260—2012 网屏编码防伪技术条件GB/T31770—2015 D9ing矩阵图码防伪技术条件GB/T34062—2017 防伪溯源编码技术条件GM/T0002 SM4分组密码算法GM/T0003 SM2椭圆曲线公钥密码算法GM/T0004 SM3密码杂凑算法3 术语和定义下列术语和定义适用于本文件。3.1防伪图码 狊犲犮狌狉犻狋狔犮狅犱犲应用密码技术、数字水印和隐形信息编码技术,按照矩阵图形编码机理生成的二维图形编码产品。3.2密码算法 犮狉狔狆狋狅犵狉犪狆犺犻犮犪犾犵狅狉犻狋犺犿描述密码处理过程的运算规则。[GM/T0026—2014,定义3.1]3.3算法标识 犪犾犵狅狉犻狋犺犿犻犱犲狀狋犻犳犻犲狉标明算法的数字信息。3.4犛犕2私钥 犛犕2狆狉犻狏犪狋犲犽犲狔小于狀-1的正整数,狀为SM2算法的阶。1犌犅/犜38566—20203.5犛犕2公钥 犛犕2狆狌犫犾犻犮犽犲狔由横坐标和纵坐标两个分量来表示的SM2曲线上的一个点。4 缩略语下列缩略语适用于本文件。APP:应用程序(Application)CLA:无证书认证管理机构(CertificatelessAuthority)ECC:椭圆曲线密码算法(EllipticCurveCryptography)ID:标识(Identity)KGC:密钥生成中心(KeyGenerationCenter)SDK:软件开发工具包(SoftwareDevelopmentKit)UID:用户身份证明(UserIdentification)5 要求5.1 转换对象及其数据安全认证5.1.1 转换对象转换对象为反应军民通用资源信息的军用信息代码和民用信息代码。5.1.2 转换对象数据安全认证采用CLA数字签名技术实现,见附录A。用于军民通用资源数据载体的码制应选用符合国家标准的二维码码制或结合其他防伪技术的二维码,包括GB/T31770—2015、GB/T29260—2012等。5.2 安全转换5.2.1 转换技术可使用防伪图码实现军用信息代码和民用信息代码之间的转换。5.2.2 转换应用模型军用信息代码和民用信息代码的安全转换应用模型见图1。2犌犅/犜38566—2020图1 安全转换应用模型示意图5.2.3 防伪图码5.2.3.1 容量和尺寸防伪图码生成容量和尺寸可根据需求调整。5.2.3.2 抗污损当图形有不超过3个角同时污损或污损面积不超过三分之一时,应能正确识读图码内信息。5.2.3.3 存储内容图码存储内容应分为军用信息代码和民用信息代码两部分,分区储存。5.2.3.4 唯一性防伪图码生成器输出的防伪图码应具有唯一的ID。5.2.3.5 防篡改应采用非对称密码等技术实现防篡改。5.2.4 生成和识读设备5.2.4.1 通用要求生成和识读设备应符合密码产品和防伪技术产品的技术要求。3犌犅/犜38566—20205.2.4.2 专用识读设备应能识读军用信息代码和民用信息代码,支持离线数据安全认证和离线识读安全转换。5.2.4.3 通用识读设备应能下载专用的APP或软件识读民用信息代码。5.3 防伪图码5.3.1 防伪图码标识应符合GB/T22258—2008要求。5.3.2 防伪溯源编码应符合GB/T34062—2017要求。5.4 信息转换安全5.4.1 真实性防伪图码中信息的来源应真实可靠。5.4.2 完整性在传输、存储防伪图码中的信息或数据过程中,应确保信息或数据不被未授权的篡改或在篡改后能够被迅速发现。5.4.3 一致性防伪图码中信息应与原始信息保持一致。5.4.4 保密性经加密的信息未经授权应无法识读。5.5 安全保障基础设施安全管理应符合基础设施通信、网络系统、身份认证、访问控制、安全审计、人员安全管理等安全要求,见附录B。6 试验方法6.1 安全验证6.1.1 信息真实性验证提供一组测试数据,其中有效签名数据100%通过验证,无效数据100%不能通过验证。6.1.2 生成唯一性验证通过专用识读设备查验,每一个防伪图码应有唯一ID。4犌犅/犜38566—20206.1.3 识读验证采用识读设备对防伪图码识读,使用通用识读设备,能正确识读出民用信息代码。使用专用识读设备,能够正确识读出军用信息代码和民用信息代码。识读设备在离线状态下仍能完成上述操作,实现离线识读验证。6.2 防伪图码防伪验证6.2.1 标识验证按照GB/T22258—2008的规定进行。6.2.2 防伪溯源编码验证按照GB/T34062—2017的规定进行。5犌犅/犜38566—2020附 录 犃(规范性附录)犆犔犃数字签名格式规范犃.1 数据类型犱犪狋犪data数据类型表示任意的字节串,比如ASCII文本文件。犃.2 签名数据类型狊犻犵狀犲犱犇犪狋犪signedData数据类型由任意类型的数据和至少一个签名者的签名值组成。任意类型的数据能够同时被任意数量的签名者签名。犃.3 数字信封数据类型犲狀狏犲犾狅狆犲犱犇犪狋犪数字信封envelopedData数据类型由加密数据和至少一个接收者的数据加密密钥的密文组成。其中,加密数据是用数据加密密钥加密的,数据加密密钥是用接收者的公钥加密的。该类型用于为接收者的data或signedData两种类型的数据做数字信封。犃.4 签名及数字信封数据类型狊犻犵狀犲犱犃狀犱犈狀狏犲犾狅狆犲犱犇犪狋犪signedAndEnvelopedData数据类型由任意类型的加密数据、至少一个接收者的数据加密密钥和至少一个签名者的签名组成。犃.5 加密数据类型犲狀犮狉狔狆狋犲犱犇犪狋犪encryptedData数据类型由任意类型的加密的数据组成,数据类型既没有接收者也没有加密的数据加密密钥。犃.6 密钥协商类型犽犲狔犃犵狉犲犲犿犲狀狋犐狀犳狅密钥协商keyAgreementInfo数据类型标明两个用户之间建立一个共享秘密密钥的结构,通过这种方式能够确定一个共享秘密密钥的值。该类型用于两个用户为产生共享秘密密钥进行的公共参数交换。犃.7 犆犔犃系统犃.7.1 犆犔犃系统原理CLA采用基于椭圆曲线的无证书密钥管理。由KGC为每个用户按用户标识生成加密公私钥对。6犌犅/犜38566—2020用户的签名公私钥对由KGC和用户共同生成,首先由用户设置一个私密值,再由KGC按用户标识生成部分私钥,同时对这两部分进行绑定,使之成为一个不可分割的整体,可有效防止用户密钥遭受公钥替换攻击和伪造签名攻击。犃.7.2 密钥生成犃.7.2.1 系统密钥生成密钥管理系统在启用初期,由管理员控制,进行系统初始化,在密码设备中生成系统主密钥。系统一次性生成16对SM2公私钥对,作为系统主密钥。在不同的时期和不同的应用中可使用不同的系统主密钥对,以便密钥更换和密钥分割使用。在一个时期或一种应用场景下,密钥管理系统根据策略选择2对主密钥,作为当前系统主密钥。犃.7.2.2 用户签名密钥对生成用户实体的签名密钥对由KGC和用户共同生成。首先由用户设置一个私密值,再由密钥生成系统按用户标识生成部分私钥,同时对这两部分进行绑定,使之成为一个不可分割的整体,可有效防止用户密钥遭受公钥替换攻击和伪造签名攻击。犃.7.2.3 用户加密密钥对生成用户实体的加密密钥对由KGC生成。犃.7.3 密钥使用犃.7.3.1 私钥使用用户私钥实际上就是常规的SM2算法私钥,可使用SM2算法进行数字签名和私钥解密。犃.7.3.2 公钥使用用户公钥就是常规的SM2算法公钥,并将公钥的一部分在用户公钥标识中公开,用户实际公钥可通过用户标识和系统公钥计算获得。在公钥加密或签名验证时,若需要使用其他用户的公钥,需要首先获取用户公钥标识,再通过计算,获取用户实际公钥。犃.7.3.3 密钥状态发布KGC通过目录服务(或网站)发布用户密钥当前状态,并提供查询服务,供公众用户查询。犃.7.3.4 密钥状态查询在使用公钥时,可通过KGC查询用户公钥的有效性。使用者发送用户公钥标识到KGC,KGC返回该公钥的当前状态。犃.7.4 密码算法采用国家密码管理局颁布的GM/T0002、GM/T0003、GM/T0004。算法的具体参数如下:a) 对称密码算法SM4,密钥长度和分组长度均为128位;b) 非对称密码算法SM2,密钥长度为256位,签名结果为64字节;c) HASH算法SM3,HASH结果长度32字节。7犌犅/犜38566—2020由于基于SM2的无证书认证系统生成的用户密钥对实际上就是常规的SM2公私钥对,所以可以适用于所有SM2标准密码算法,如SM2签名