1、生成密钥
openssl genrsa -out test2048_priv.pem 2048
openssl rsa -pubout -in test2048_priv.pem -out test2048_pub.pem
openssl genrsa -out test3072_priv.pem 3072
openssl rsa -pubout -in test3072_priv.pem -out test3072_pub.pem
openssl genrsa -out test4096_priv.pem 4096
openssl rsa -pubout -in test4096_priv.pem -out test4096_pub.pem
2、查看密钥
openssl rsa -in test2048_priv.pem -text -out
openssl rsa -in test3072_priv.pem -text -out
openssl rsa -in test4096_priv.pem -text -out
3、基于 PKCS1v1.5 Pending的 签名、验签、加密、解密
(1) 签名和验签
openssl dgst -sign test2048_priv.pem -sha256 -out sign.txt in.txt
openssl dgst -verify test2048_pub.pem -sha256 -signature sign.txt in.txt
(2)加密和解密
openssl rsautl -encrypt -pkcs -in in.txt -out in_cipher.txt -inkey test2048_priv.pem
openssl rsautl -decrypt -pkcs -in in_cipher.txt -inkey test2048_priv.pem -out in_e_d.txt
3、基于 PKCS1v2.1 PSS signature Pending的 签名、验签
(1)
这条与TA中的TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA256 算法对应
openssl dgst -sha256 -sign test2048_priv.pem -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 -out sign2048pss.bin in.txt
openssl dgst -verify test2048_pub.pem -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 -sha256 -signature sign2048pss.bin in.txt
(2)
这条也属于RSA PSS算法,但在TA中找不到与之对应的flag
openssl dgst -sha256 -sign test2048_priv.pem -sigopt rsa_padding_mode:pss -out sign2048pss.bin in.txt
openssl dgst -verify test2048_pub.pem -sigopt rsa_padding_mode:pss -sha256 -signature sign2048pss.bin in.txt
注解 :
-sha256: 指定要使用的哈希算法,此处使用SHA-256。
-sign test2048_priv.pem: 指定要用于签名的RSA私钥文件。请将private_key.pem替换为您实际使用的RSA私钥文件的路径。
-sigopt rsa_padding_mode:pss: 指定使用PSS填充模式进行签名。
-sigopt rsa_pss_saltlen👎 使用MGF1填充并指定rsa_pss_saltlen:-1以使用与哈希输出相同的盐长度。
-out sign2048pss.bin: 指定输出签名的文件名。
in.txt: 指定要签名的数据文件,您可以将其替换为您要签名的实际数据文件的路径。
4、基于 PKCS1v2.0 OAEP encryption padding的加密、解密
openssl rsautl -encrypt -oaep -in in.txt -out cipher2048_oeap.txt -inkey test2048_priv.pem
openssl rsautl -decrypt -oaep -in cipher2048_oeap.txt -out in_e_d.txt -inkey test2048_priv.pem
5、查看一个私钥
openssl rsa -in test_priv.pem -text
添加威♥:sami01_2023,回复ARM中文,领取ARM中文手册