首页 > 编程语言 >3. 密码算法和密码消息的ASN.1描述(openssl应用举例)

3. 密码算法和密码消息的ASN.1描述(openssl应用举例)

时间:2023-06-08 23:44:27浏览次数:49  
标签:ASN.1 openssl 密码 算法 消息 格式 2.1

密码算法和密码消息的ASN.1描述(openssl应用举例)

目录





1. 密码算法描述

1.1. 密码算法ASN.1的格式

  • Algorithmdentifier ::= SEQUENCE{
    • Algorithm OBJECT IDENTIFIER,
    • Parameters ANY DEFINEED BY algorithm OPTIONAL }

其中Algorithm为算法的OID,Parameters为算法的参数

1.2. 密码算法的OID

  • 常用的密码算法的OID

2. 密码消息的描述

PKCS #7和《SM2密码算法加密签名消息语法规范》中规定了各种密码消息的具体格式,这些消息可用于不同实体之间的数据交换。

2.1. 密码消息ASN.1的格式

2.1.1 通用内容消息

contentType表示内容类型或消息类型包括但不限于:

  • data
  • signedData
  • envelopedData
  • signedAndEnvelopedData
  • digestData
  • encryptedDta
  • keyAgreementInfo
    content 就是内容的值
2.1.2 data

明文数据消息

2.1.3 SignedData

数字签名消息SignedData

  • 在使用SM2算法是SignedData的ASN.1描述如下
2.1.4 SignerInfo

签名者信息格式SignerInfo(两部分截图是一起的没有缺失)


ASN.1描述的解释

2.1.5 EnvelopedData

数字信封 EnvelopedData


version缺省时值为1.recipientInfo是接受者集合,encryptedContentInfo表示已加密的内容消息。

contentType表示内容类型。contentEncryptionAlgorithm表示密码算法的标识,用于加密内容。encryptedContent表示加密后的内容

  • SM2中的encryptedContentInfo描述

  • RecipientInfo

接受者信息格式

2.1.6 signedAndEnvelopedData

2.1.7 DigestData


2.1.8 EncryptedData

2.1.9 KeyAgreementInfo

2.2 密码消息的OID

3. 基于OpenSSL对密码算法和密码消息ASN.1描述的实践

3.1. pkcs #7 格式下RSA的密文

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365生成一个自签名证书cert.pem和生成一个私钥key.pem

openssl rsa -pubout -in key.pem -out public_key.pem 派生公钥

openssl rsautl -encrypt -inkey public_key.pem -pubin -in test.bin -out encrypted.bin 使用公钥对文件加密

openssl cms -encrypt -binary -in encrypted.bin -outform DER -out test.pkcs7 -recip cert.pem 生成pkcs#7格式的密文

结果展示



参考

标签:ASN.1,openssl,密码,算法,消息,格式,2.1
From: https://www.cnblogs.com/charliecza/p/17467995.html

相关文章

  • wazuh ALL-in-one ES账号密码位置(version:4.4)
    ALL-in-oneES账号密码位置ALL-in-one安装的账号密码其实默认就是webUI访问的账号密码。也可以用证书私钥的方式访问ES,参考wazuh-install.sh安装脚本截取的相关代码,如下第1行、18行红色标记:indexer_cert_path="/etc/wazuh-indexer/certs"functionindexer_initialize(){......
  • 基于OpenSSL(GMSSL)的国密算法的应用
    ===基于OpenSSL(GMSSL)的国密算法的应用1.gmssl介绍GmSSL是一个开源的加密包的python实现,支持SM2/SM3/SM4等国密(国家商用密码)算法、项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。2.安装gmssl包相关包网址:https://pypi.org/project/gmssl/在终端输......
  • 开发密码登陆接口用postman测试报错“key is of invalid type”
    发现为go中jwt使用错误我出错的地方为//出现错误地方为tokenClaims:=jwt.NewWithClaims(jwt.SigningMethodES256,claims)returntokenClaims.SignedString(jwtSecret)我出错的点:加密方式选择了 jwt.SigningMethodES256,应该选择jwt.SigningMethodHS256,这个H是hash的意......
  • 虚拟机上安装nginx、openssl、pcre、zlib步骤
    1、下载相关组件:wget http://nginx.org/download/nginx-1.10.2.tar.gzopenssl是一个开源的实现加解密和证书的专业系统。wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gzopenssl是一个开源的实现加解密和证书的专业系统。wgethttp://downloads.sourcefo......
  • amazon linux ssh 使用密码登录
    amazonlinux ssh 使用密码登录1、使用AWS控制台创建的密钥对或者直接通过网页登录注意:使用pem私钥不允许直接登录root用户,只能登录默认用户例如:ec2-user,ubuntu等等2、创建root密码sudopasswdroot3、切换到root用户suroot4、修改sshd_config文件vim/etc/ssh/sshd_conf......
  • amazon linux 2 重置root密码
    amazonlinux2重置root密码linux的版本很多,但是重置root用户的密码的方法都是相似的,都是进入单用户模式修改root密码。步骤1.重启amazonlinux2重启amazonlinux2服务器后,进入系统加载页面2.按键盘“e”键,进入编辑模式3.移动光标找到linux16开头的那行,将光标移动到该行的末......
  • input框记住密码之后样式取消
    input:-webkit-autofill{-webkit-text-fill-color:#fff!important;/*记住密码的字的颜色*/transition:background-color5000sease-in-out0s;/*延时渲染背景色来去除背景色*/caret-color:#fff;/*光标颜色*/}input:focus{/*外边框线去除*/outline:none;......
  • navicat查看数据库密码
    1、注册表中密码信息计算机\HKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Servers\localhost2、进行php在线密码解密在线php密码运行平台https://tool.lu/coderunner/代码如下`<?phpnamespaceFatSmallTools;classNavicatPassword{protected$version=0;protect......
  • 使用snap安装Redis并配置外网访问和访问密码
    使用snap安装Redis并配置外网访问和访问密码Redis是一个流行的开源内存数据库,用于处理数据存储和缓存。在本文中,我们将介绍如何使用snap安装Redis,并通过Redis的CLI(命令行界面)来配置外网访问和访问密码。snap是一种用于在Linux系统上安装软件的包管理器,它提供了简单且可靠的软件......
  • Windows AD域查询属性-密码过期时间
    WindowsAD域查询属性-密码过期时间WindowsPowerShell命令方式查询:netuserzhou/domain找出SamAccountName的值为zhou的用户部分信息PSC:\user\admin>netuserzhou/domainUsernamezhouFullnamezhouCommentUser'scomment......