1. 国密算法
国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。
SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。
SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。
国家密码管理局公布的公钥算法,其加密强度为256位
SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。
SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。
由于SM1、SM4加解密的分组大小为128bit,故对消息进行加解密时,若消息长度过长,需要进行分组,要消息长度不足,则要进行填充。
分组密码算法(DES和SM4)、将明文数据按固定长度进行分组,然后在同一密钥控制下逐组进行加密,
公钥密码算法(RSA和SM2)、公开加密算法本身和公开公钥,保存私钥
摘要算法(SM3 md5) 这个都比较熟悉,用于数字签名,消息认证,数据完整性,但是sm3安全度比md5高
总得来说国密算法的安全度比较高,2010年12月推出,也是国家安全战略,现在银行都要要求国际算法改造,要把国际算法都给去掉
C 语言实现
https://github.com/guan/GmSSL/
Go 语言
https://github.com/tjfoc/gmsm
https://github.com/ZZMarquis/gm
Java 语言
https://github.com/PopezLotado/SM2Java
Go语言实现,调用 gmsm
2. 国密算法指的是什么
国密算法是国家密码局制定标准的一系列算法。其中包括了对称加密算法,椭圆曲线非对称加密算法,杂凑算法。具体包括SM1,SM2,SM3等,其中:
SM2为国家密码管理局公布的公钥算法,其加密强度为256位。
SM1,对称加密算法,加密强度为128位,采用硬件实现。
SM3,密码杂凑算法,杂凑值长度为32字节,和SM2算法同期公布,参见《国家密码管理局公告(第 22 号)》。
SMS4,对称加密算法,随WAPI标准一起公布,可使用软件实现,加密强度为128位。
应用举例:
在门禁应用中,采用SM1算法进行身份鉴别和数据加密通讯,实现卡片合法性的验证,保证身份识别的真实性。 安全是关系国家、城市信息、行业用户、百姓利益的关键问题。
国家密码管理局针对现有重要门禁系统建设和升级改造应用也提出指导意见,加强芯片、卡片、系统的标准化建设。截止目前,国密门禁系统的升级的案例也逐渐增多,基于自主国产知识产权的CPU卡、CPU卡读写设备及密钥管理系统广泛受到关注。
3. 科普:国产密码算法
密码学(cryptography): 通过将信息编码使其不可读,从而达到安全性。
算法 :取一个输入文本,产生一个输出文本。
加密算法 :发送方进行加密的算法。
解密算法 :接收方进行解密的算法。
对称密钥加密 (Symmetric Key Cryptography):加密与解密使用相同密钥。
非对称密钥加密 (Asymmetric Key Cryptography):加密与解密使用不同密钥。
密钥对 :在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。
公钥 :公钥用来给数据加密,用公钥加密的数据只能使用私钥解密。
私钥 :如上,用来解密公钥加密的数据。
摘要 :对需要传输的文本,做一个HASH计算。
签名 :使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。
密码协议是指两个或两个以上的参与者为了达到某种特定目的而采取的一系列步骤。规定了一系列有序执行的步骤,必须依次执行。必须有两个或两个以上的参与者,有明确的目的。参与者都必须了解、同意并遵循这些步骤。
常见的密码协议包括IPSEC VPN 协议、SSL VPN 协议、密钥交换协议等。
密码是指描述密码处理过程的一组运算规则或规程,一般是指基于复杂数学问题设计的一组运算,其基本原理基于数学难题、可证明计算、计算复杂度等。主要包括:对称密码、公钥密码、杂凑算法、随机数生成。
在对称加密算法中,加密使用的密钥和解密使用的密钥是相同的,加密和解密都是使用同一个密钥,不区分公钥和私钥。
通信双方采用相同的密钥来加解密会话内容,即一段待加密内容,经过同一个密钥的两次对称加密后,与原来的结果一样,具有加解密速度快和安全强度高的优点。
国际算法:DES、AES。
国产算法:SM1、SM4、SM7。
非对称加解密算法又称为 公钥密码 ,其密钥是成对出现的。双方通信时,首先要将密钥对中的一个密钥传给对方,这个密钥可以在不安全的信道中传输;传输数据时,先使用自己持有的密钥做加密,对方用自己传输过去的密钥解密。
国际算法:RSA
国产算法:SM2
优点:
密钥分发数目与参与者数目相同,在有大量参与者的情况下易于密钥管理。
支持数字签名和不可否认性。
无需事先与对方建立关系,交换密钥。
缺点:
速度相对较慢。
可能比同等强度的对称密码算法慢10倍到100倍。
加密后,密文变长。
密码杂凑算法 :又称为散列算法或哈希函数,一种单向函数,要由散列函数输出的结果,回推输入的资料是什么,是非常困难的。
散列函数的输出结果,被称为讯息摘要(message digest)或是 摘要(digest) ,也被称为 数字指纹 。
杂凑函数用于验证消息的完整性, 在数字签名中,非对称算法对数据签名的速度较慢,一般会先将消息进行杂凑运算,生成较短的固定长度的摘要值。然后对摘要值进行签名,会大大提高计算效率 。
国际算法:MD5、SHA1、SHA2、SHA3
国产算法:SM3
2009年国家密码管理局发布的《信息安全等级保护商用密码技术实施要求》中明确规定,一、二、三、四级信息系统应使用商用密码技术来实施等级保护的基本要求和应用要求,一到四级的密码配用策略要求采用国家密码管理部门批准使用的算法。
2010年年底,国家密码管理局公开了SM2、SM3等国产密码算法。
2011年2月28日,国家密码管理局印发的【2011】145号文中明确指出,1024位RSA算法正在面临日益严重的安全威胁,并要求各相关企业在2012年6月30日前必须使用SM2密码算法
国家密码管理局在《关于做好公钥密码算法升级工作的函》中要求2011年7月1日以后建立并使用公钥密码的信息系统,应使用SM2算法;已经建设完成的系统,应尽快进行系统升级,使用SM2算法。
2014年底,国家密码管理局启动《重要信息系统密码应用推进总体研究课题》,确定十三五密码 科技 专项。
2017年11月底,国家密码管理局下发了《政务云密码支撑方案及应用方案设计要点》。
2017年国家密码管理局发布了42项金融和重要领域国产密码应用试点任务。
2018年,中共中央办公厅、国务院办公厅印发《金融和重要领域密码应用与创新发展工作规划(2018-2022年)。
2018年,为指导当时即将启动的商用密码应用安全性评估试点工作,国家密码管理局发布了密码行业标准GM/T0054-2018《信息系统密码应用 基本要求》。
2021年3月,国家市场监管总局、国家标准化管理委员会发布公告,正式发布国家标准GB/T39786-2021《信息安全技术信息系统密码应用基本要求》,该标准于2021年10月1日起实施。
SM1 算法是分组密码算法,分组长度为 128 位,密钥长度都为 128 比特,算法安全保密强度及相关软硬件实现性能与AES相当,算法不公开,仅以IP核的形式存在于芯片中。
算法集成于加密芯片、智能 IC 卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括政务通、警务通等重要领域)。
SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,是一种基于ECC算法的 非对称密钥算法, 其加密强度为256位,其安全性与目前使用的RSA1024相比具有明显的优势。
包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现 数字签名密钥协商 和 数据加密 等功能。
SM3杂凑算法是我国自主设计的密码杂凑算法,属于哈希(摘要)算法的一种,杂凑值为256位,安全性要远高于MD5算法和SHA-1算法。
适用于商用密码应用中的 数字签名 和 验证消息认证码的生成与验证 以及 随机数 的生成,可满足多种密码应用的安全需求。
SM4 分组密码算法 是我国自主设计的分组对称密码算法,SM4算法与AES算法具有相同的密钥长度分组长度128比特,因此在安全性上高于3DES算法。
用于实现数据的加密/解密运算,以保证数据和信息的机密性。软件和硬件加密卡均可实现此算法。
商用密码技术框架包括 密码资源、密码支撑、密码服务、密码应用 等四个层次,以及提供管理服务的密码管理基础设施。
密码资源层: 主要是提供基础性的密码算法资源。
密码支撑层: 主要提供密码资源调用,由安全芯片、密码模块、智能IC卡、密码卡、服务器密码机、签名验签服务器、IPSCE/SSL VPN 等商密产品组成。
密码服务层: 提供密码应用接口,分为对称和公钥密码服务以及其他三大类。
密码应用层: 调用密码服务层提供的密码应用程序接口,实现数据的加解密、数字签名验签等服务。如应用 于 安全邮件、电子印章系统、安全公文传输、移动办公平台、可信时间戳等系统。
密码管理基础设施: 独立组件,为以上四层提供运维管理、信任管理、设备管理、密钥管理等功能。
完整的PKI系统必须具有权威认证机构(CA)、数字证书库、密钥备份及恢复系统(KMC)、证书作废系统(CRL)、应用接口(API)等基本构成部分,构建PKI也将围绕着这五大系统来着手构建。
CA 系统:Ca系统整个PKI的核心,负责证书的签发。CA首先产生自身的私钥和公钥(密钥长度至少为1024位),然后生成数字证书,并且将数字证书传输给安全服务器。、CA还负责为操作员、安全服务器以及注册机构服务器生成数字证书。安全服务器的数字证书和私钥也需要传输给安全服务器。
CA服务器是整个结构中最为重要的部分,存有CA的私钥以及发行证书的脚本文件,出于安全的考虑,应将CA服务器与其他服务器隔离,任何通信采用人工干预的方式,确保认证中心的安全。
(1)甲使用乙的公钥对明文进行加密,生成密文信息。
(2)甲使用HASH算法对明文进行HASH运算,生成数字指纹。
(3)甲使用自己的私钥对数字指纹进行加密,生成数字签名。
(4)甲将密文信息和数字签名一起发送给乙。
(5)乙使用甲的公钥对数字签名进行解密,得到数字指纹。
(6)乙接收到甲的加密信息后,使用自己的私钥对密文信息进行解密,得到最初的明文。
(7)乙使用HASH算法对还原出的明文用与甲所使用的相同HASH算法进行HASH运算,生成数字指纹。然后乙将生成的数字指纹与从甲得到的数字指纹进行比较,如果一致,乙接受明文;如果不一致,乙丢弃明文。
SSL 协议建立在可靠的传输协议(如 TCP)之上,为高层协议提供数据封装,压缩,加密等基本功能。
即可以协商加密算法实现加密传输,防止数据防窃听和修改,还可以实现对端设备身份验证、在这个过程中,使用国密算法进行加密、签名证书进行身份验证、加密证书用于密钥交换
SSL协商过程:
(1)客户端发出会话请求。
(2)服务端发送X.509证书(包含服务端的公钥)。
(3)客户端用已知Ca列表认证证书。
(4)客户端生成随机对称密钥,并利用服务端的公钥进行加密。
(5)双方协商完毕对称密钥,随后用其加密会话期间的用户最终数据。
利用SSL卸载技术及负载均衡机制,在保障通讯数据安全传输的同时,减少后台应用服务器的性能消耗,并实现服务器集群的冗余高可用,大幅度提升整个业务应用系统的安全性和稳定性。此外,借助多重性能优化技术更可缩短了业务访问的响应等待时间,明显提升用户的业务体验。
基于 数字证书 实现终端身份认证,给予密码运算实现本地数据的加密存储,数字证书硬件存储和密码运算由移动终端内置的密码部件提供。
移动应用管理系统服务器采用签名证书对移动应用软件安装包进行签名,移动应用管理系统客户端对签名信息进行验签,保障移动应用软件安装包的真实性和完整性。
移动办公应用系统采用签名证书对关键访问请求进行签名验证。
采用加密证书对关键传输数据和业务操作指令,以及移动终端本地存储的重要数据进行加密保护。
移动办公系统使用商用密码,基于数字证书认证系统,构建覆盖移动终端、网络、移动政务应用的安全保障体系,实现政务移动终端安全、接入安全、传输安全和移动应用安全 。
4. 003 国密算法【技术】
国密算法:国家密码局认定的国产密码算法,即商用密码。
非对称密码(公钥算法):SM2,SM9
对称密码(分组密码,序列密码):SM1,SM4,SM7,ZUC
杂凑算法(散列,哈希算法):SM3
概述 : 对称加密算法(分组密码) ,分组长度128位,密钥长度128位, 算法不公开 ,通过加密芯片的接口进行调用。
场景 :采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。
概述 : 非对称加密算法(公钥算法) ,加密强度为256位,是一种椭圆曲线算法。
公钥密码学与其他密码学完全不同, 使用这种方法的加密系统,不仅公开加密算法本身,也公开了加密用的密钥。公钥密码系统与只使用一个密钥的对称传统密码不同,算法是基于数学函数而不是基于替换和置换。公钥密码学是非对称的,它使用两个独立的密钥,即密钥分为公钥和私钥,因此称双密钥体制。双钥体制的公钥可以公开,因此称为公钥算法。
使用私钥加密后的密文只能用对应公钥进行解密,反之使用公钥加密的密文也只能用对应的私钥进行解密。通过对私钥进行椭圆曲线运算可以生成公钥,而由于椭圆曲线的特点,知道公钥却很难反推出私钥,这就决定了SM2算法的安全性。SM2算法最常见的应用是进行身份认证,也就是我们熟知的数字签名与验签,通过私钥的私密性来实现身份的唯一性和合法性。
场景: 适用于商用应用中的 数字签名和验证 ,可满足多种密码应用中的 身份认证 和 数据完整性,真实性 的安全需求。
场景: 适用于商用密码应用中的 密钥交换 ,可满足通信双方经过两次或可选三次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥(会话密钥)。
场景: 适用于国家商用密码应用中的 消息加解密 ,消息发送者可以利用接收者的公钥对消息进行加密,接收者用对应的私钥进行解,获取消息。
涉及国密标准: GB/T 32918.1-2016、GB/T 32918.2-2016、GB/T 32918.3-2016、GB/T 32918.4-2016、GB/T 32918.5-2017、GB/T 35275-2017、GB/T 35276-2017。
概述:哈希算法(散列算法,杂凑算法) ,任意长度的数据经过SM3算法后会生成长度固定为256bit的摘要。SM3算法的逆运算在数学上是不可实现的,即通过256bit的摘要无法反推出原数据的内容,因此在信息安全领域内常用SM3算法对信息的完整性进行度量。
场景: 适用于商用密码应用中的 数字签名和验证 , 消息认证码的生成与验证 以及 随机数的生成 ,可满足多种密码应用的安全需求。
涉及国密标准: GB/T 32905-2016
概述:对称加密算法(分组密码) ,分组长度128位,密钥长度128位,使用某一密钥加密后的密文只能用该密钥解密出明文,故而称为对称加密。SM4算法采用32轮非线性迭代实现,加解密速度较快,常应用于大量数据的加密,保存在存储介质上的用户数据往往就使用SM4算法进行加密保护。
场景:大量数据的加密,解密,MAC的计算 。
分组密码就是将明文数据按固定长度进行分组,然后在同一密钥控制下逐组进行加密,从而将各个明文分组变换成一个等长的密文分组的密码。其中二进制明文分组的长度称为该分组密码的分组规模。
分组密码的实现原则如下:必须实现起来比较简单,知道密钥时加密和脱密都十分容易,适合硬件和(或)软件实现。加脱密速度和所消耗的资源和成本较低,能满足具体应用范围的需要。
分组密码的设计基本遵循混淆原则和扩散原则
①混淆原则就是将密文、明文、密钥三者之间的统计关系和代数关系变得尽可能复杂,使得敌手即使获得了密文和明文,也无法求出密钥的任何信息;即使获得了密文和明文的统计规律,也无法求出明文的任何信息。
②扩散原则就是应将明文的统计规律和结构规律散射到相当长的一段统计中去。也就是说让明文中的每一位影响密文中的尽可能多的位,或者说让密文中的每一位都受到明文中的尽可能多位的影响。
涉及国密标准: GB/T 32907-2016
概述 : 对称加密算法(分组密码) ,分组长度128位,密钥长度128位, 算法不公开 ,通过加密芯片的接口进行调用。
场景 :适用于非接触式IC卡,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)。
概述:非对称加密算法(标识密码) ,标识密码将用户的标识(如邮件地址、手机号码、QQ号码等)作为公钥,省略了交换数字证书和公钥过程,使得安全系统变得易于部署和管理,非常适合端对端离线安全通讯、云端数据加密、基于属性加密、基于策略加密的各种场合。
SM9算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全保障。如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。这些安全应用可采用手机号码或邮件地址作为公钥,实现数据加密、身份认证、通话加密、通道加密等安全应用,并具有使用方便,易于部署的特点,从而开启了普及密码算法的大门。
概述 : 对称加密算法(序列密码) ,是中国自主研究的流密码算法,是运用于移动通信4G网络中的国际标准密码算法,该算法包括祖冲之算法(ZUC)、加密算法(128-EEA3)和完整性算法(128-EIA3)三个部分。目前已有对ZUC算法的优化实现,有专门针对128-EEA3和128-EIA3的硬件实现与优化。
5. SM算法是如何获得国际认可
众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,为了以后获得国际认可和认同。SM算法包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)那等等。其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。目前,这些算法已广泛应用于各个领域当中,期待有一天会有采用国密算法的区块链应用出现。其中SM1、SM7算法不公开,调用该算法时,需要通过加密芯片的接口进行调用;比较少的人了解这些算法的使用方式,在这里对这些国密算法做一下简单的科普。SM1 算法是分组密码算法,分组长度为128位,密钥长度都为 128 比特,算法安全保密强度及相关软硬件实现性能与 AES 相当,算法不公开,仅以IP核的形式存在于芯片中。采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。SM7算法,是一种分组密码的算法,分组长度一般为128比特,密钥长度为128比特。SM7适用于非接触式IC卡,应用包括身份识别类应用(门禁卡类、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)。
6. 金税专用加密机的功能特点是什么
渔翁信息金税专用加密机功能特点:
1.密钥生成
支持国密SM2算法密钥对的生成、支持RSA密钥对生成、支持对称密钥的生成。
2.密钥存储
默认存储64对SM2密钥对和64对RSA密钥对,支持存储1024个对称密钥,可根据客户需求扩展。
3.密钥销毁
支持销毁 SM2密钥对、RSA 密钥对和通信密钥,且销毁后通过任何技术均无法恢复。
4.密钥更新
支持非对称密钥对和对称密钥的更新功能。
5.密钥备份和恢复
支持设备内部密钥以密文形式备份至设备外部存储,并采用门限秘密共享机制确保密钥备份安全,备份密钥可恢复到相同型号的其他加密卡设备中。
6.真随机数生成
采用经国密局批准使用的物理噪声源产生器生成真随机数,确保密钥安全。
7.非对称加解密
支持国密SM2椭圆曲线密码算法加解密,密钥长度为256位;支持RSA算法加解密。
8.对称加解密
支持国密SM1、SM4对称算法加解密;支持DES、3DES、AES、AES192、AES256等算法加解密。
9.完整性运算
支持国密SM3杂凑算法,支持SHA1算法确保数据完整性。
10.签名/签名验证
支持非对称算法的私钥对数据进行签名,使用对应的公钥进行签名验证。
11.身份识别
支持使用非对称算法的公钥进行用户身份鉴别。
12.开发支持
支持微软PKCS#11接口、JCE接口等标准接口;支持用户定制接口的开发;支持《密码设备应用接口规范》国家标准接口;支持多进程、多线程调用。
13.密钥管理
采用三级密钥管理体系,包括主密钥、密钥保护密钥及工作密钥,密钥均以密文形式存在密码卡内部,密钥管理安全。
14.权限管理
采用分级权限管理,分为操作员和管理员,管理员可生成3个或以上,最多5个,只有登录半数以上的管理员才能大大满足管理权限,进行各种管理操作。管理员和操作员的身份通过USBKEY实现双因子认证。
15.系统监控
支持对设备CPU/内存的使用率、当前业务并发量、正在处理的业务操作等进行实时监控。
16.业务连续性
支持断链修复功能;支持多机并行及负载均衡。
17.日志审计
支持对服务器密码机的操作行为进行审计。
7. 加密机为什么要罐密钥
加密机为什么要罐密钥的原因是,
软件加密实现容易,投资较小,但密钥及算法易于外泄,安全级别较低,所以需要灌密钥,加强保密性。