【实践】基于云峦KeyarchOS的国密技术与实践

本文将解析云峦KeyarchOS中nettle、gnutls、qemu、openssl、cryptography等基础密码组件对国密算法的支持情况。

背景

国密标准已出台多年,国密技术生态处于一个逐步走向成熟的阶段,但许多基础密码组件在支持国密算法方面仍然不理想,导致操作系统的应用在计算、存储、网络传输等场景下的国密算法使用存在障碍。

为了解决上述问题,云峦KeyarchOS在nettle、gnutls、qemu、openssl、cryptography等基础密码组件上实现国密算法支持,支持SM2、SM3、SM4国密算法。

  1. Nettle

Nettle是一个开源的底层加密库,主要用于实现各种加密算法、散列函数、随机数生成等功能,具备良好的灵活性和可移植性,这使得加解密功能能够轻松地应用到各种环境中。云峦KeyarchOS中的Nettle组件支持SM2、SM3、SM4国密算法,其国密算法的应用举例如下:

  1. 使用nettle的sample程序进行SM3、SM4国密算法验证,其中SM4加解密的填充算法为PKCS7。

  1. Gnutls

Gnutls是一个开源的安全通讯库,专注于实现安全的网络通信协议,如SSL、TLS等,操作系统部分上层应用的网络通信是基于Gnutls实现的。云峦KeyarchOS中的Gnutls组件支持 TLSv1.2协议使用国密算法,并支持使用Gnutls的certtool工具生成国密证书。Gnutls使用国密算法进行TLS三次握手并建立链接的应用举例如下:

  1. 启动gnutls-serv程序,监听TLS访问请求,并指定使用国密证书(包括CA证书sm2-ca.pem,服务端证书sm2-server.key、sm2-server.pem)和国密加密套件。

  1. 启动gnutls-cli程序,对gnutls-serv发起连接请求,并指定使用的国密证书(包括CA证书sm2-ca.pem,客户端证书sm2-client.key、sm2-client.pem)和国密加密套件,gnutls-cli与gnutls-serv使用国密算法完成三次握手,建立链接。

  1. QEMU

qemu-img是qemu项目中的一个命令行工具,主要用于创建、转换、管理和操作磁盘镜像文件。在qemu-img中,可以使用对称加密算法、Hash算法等技术创建加密磁盘镜像,以保护磁盘上的数据,云峦KeyarchOS使用libgcrypt作为后端加密库,实现qemu-img应用国密算法创建加密磁盘,其应用举例如下:

  1. qemu-img创建加密磁盘镜像gm.img,对称加密算法为SM4,散列算法为SM3。并使用qemu-img info命令查看磁盘镜像信息。

  1. 使用virt-install创建虚拟机,磁盘镜像使用gm.img,虚拟机创建成功

  1. 使用virsh查看创建的虚拟机状态

  1. OpenSSL

OpenSSL是一个开放源代码的软件库,专注于提供安全套接字层(SSL)和传输层安全(TLS)协议的实现,以及一系列广泛的加密工具和函数库。它是互联网安全通信领域中的一个关键组件,广泛应用于各种操作系统和平台上。社区版本OpenSSL在国密算法的支持上存在缺陷,云峦KeyarchOS在OpenSSL1.1.1w版本上完善了国密算法的实现,其应用举例如下:

  1. 使用OpenSSL,进行SM3散列计算、SM4加解密验证

  1. 使用OpenSSL,生成SM2非对称算法密钥对

  1. 使用OpenSSL和生成的SM2非对称算法密钥对文件进行签名验签及加解密验证

  1. 也可以指定hash算法sm3对文件计算hash值,再对hash值做签名和验签

  1. Cryptography

Cryptography是一个功能强大、易于使用的加解密原语库,专为Python开发者设计,旨在提供安全的加解密处理能力。云峦KeyarchOS在Cryptography上支持了SM2国密算法,其应用举例如下:

  1. 使用cryptography的sample程序使用SM2算法进行加解密及签名验签

总结

国密算法的应用愈加广泛,云峦KeyarchOS的基础密码组件已经支持国密算法,这为云峦KeyarchOS用户提供了有效的国密应用支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
国密SM2是中国自主研发的一种椭圆曲线公钥密码算法,广泛应用于数字签名、密钥交换、加密等领域。下面简单介绍一下基于国密SM2的数字签名技术。 数字签名是一种用于保证数字信息真实性、完整性和不可抵赖性的技术。基于国密SM2的数字签名技术采用了非对称加密算法,即使用一对公钥和私钥进行加密和解密。具体流程如下: 1. 密钥生成 首先,签名方需要生成一对公钥和私钥。公钥可以公开,私钥必须保密。在国密SM2算法中,公钥的长度为256位,私钥的长度为256位,其中一部分为随机数。 2. 数字签名 数字签名的过程可以分为四步: (1)计算消息的摘要值。使用SHA-256算法计算出消息的摘要值,摘要值的长度为256位。 (2)随机数生成。生成一个随机数k,保证其在区间[1,n-1]之间,n为SM2算法中的一个大素数。 (3)计算椭圆曲线上的点。根据摘要值和随机数k计算出椭圆曲线上的点R,其中R = [k]G,G为椭圆曲线上的基点。 (4)计算数字签名。根据摘要值、随机数k、私钥d和点R计算数字签名S,其中S = (hash(m) + x(R)*d)/(1+k)^(-1) mod n,x(R)表示点R的x坐标。 3. 数字签名验证 数字签名验证也可以分为四步: (1)计算消息的摘要值。使用SHA-256算法计算出消息的摘要值,摘要值的长度为256位。 (2)计算椭圆曲线上的点。根据签名中的点R和数字签名S计算出椭圆曲线上的点V,其中V = [h]P + [s]Q,h为摘要值的哈希值,P为公钥,Q为点R。 (3)验证数字签名。如果V的x坐标等于R的x坐标,则认为数字签名有效,否则认为数字签名无效。 (4)安全性检查。如果验证通过,还需要进行安全性检查,检查签名是否被篡改或重放攻击。 基于国密SM2的数字签名技术具有高强度、高安全性、高效率等优点,广泛应用于电子商务、金融支付、政府机构等领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值