RSA非对称加密算法

RSA算法公式

RSA密钥对生成原理

RSA加解密原理

密钥格式

ASN.1 - 抽象语法标记

ASN.1抽象语法标记(Abstract Syntax Notation One) ASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示编码传输解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序。

DER编码格式

ASN.1有一套关联的编码规则,这些编码规则用来规定如何用二进制来表示数据结构,DER是其中一种。
DER 是密钥的二进制表述格式。

PEM编码格式

PEM是一个用来存储和发送密码学key、证书和其他数据的文件格式的事实标准。许多使用ASN.1的密码学标准(比如X.509PKCS)都使用DER编码,而DER编码的内容是二进制的,不适合与邮件传输(早期Email不能发送附件),因此使用PEM把二进制内容转换成ASCII码。文件内容的格式像下面这样:

-----BEGIN label-----
BASE64Encoded
-----END label-----

PEM实际上就是把DER编码的文件的二进制内容用base64编码一下,然后加上-----BEGIN label-----这样的头和-----END label-----这样的尾,中间则是DER文件的Base64编码。

使用命令"openssl genrsa -out key.pem"产生如下内容的key.pem文件,其中"-----BEGIN RSA PRIVATE KEY-----"与"-----END RSA PRIVATE KEY----"之间的数据为der文件的Base64编码得到的数据。

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAtmDFzYYgH9Dq2rsHNVIUpleIdiKRpyc1qADKxJ90ztad8U94
JSXTOynf4q5LWN8Rl2PX+masJvA4g7Vhlh0fDf/BrgP/KueNO7RD4/L2ITufF/Oj
DCCX/ZQzLykII7Tk3DobXvr3/RvxCOFQ39LfyGkjhKTCwjR9dnTIo9gvR3Zp2ZjE
zJCpBOImTPqo/se0dfEoFlNdLmitEtpOrUl9mSof4eaKRbbTgXFn4acBfCAKS4gb
FzUP85g+ORKSO8grgvSKPMzuKloPmUUy2waJypEg8edxRWcA7K570dTjwP1UkQbu
Fk9d7YDMnXx8IjbSwbd7SpQ+rIbP6ppN8dGkEwIDAQABAoIBAAcLzhiWqf8Qr0Is
H6cruKiEkT0fMMlodmY7QZo/HuAu4oNEMrwcrgCHKaM0YKzaUW+r59hAxz3p4gUU
qOSH039S9kSm2uDpeUdpO4Y/CMtX5lmijBYX3Edrxl54E1xtzLnFdPFCePpKbhGN
wvYiy4qOpVSmmO+v33kIIghSfeEg3VuknhFyMGQADITmfLqeqodVh23E0Eq4ZvpB
/rP8CjpheLIW77IUqgwpaocTJx21JMVIxGK9Y2vRmEs2KSlw8uGKi4gWDAn70f9+
nq2z2CISxFAWlBuOR5g9iVZnd7sBxDZewMejYyuE1yFoiOrtzR793y43rlBZJO8Q
gqGeaKECgYEA2fq8TWQIjWNe9jlKE/lbve2/BvtQrAKmdOVFKbs+LPEQ+DVNeNYV
z4h7CEUdN0diSN69pp0GqV/wbIKs8SSPKMLTe1dwjzmrs/rx1OcQY8UboWC8R0lo
nPz0KIsmHr1aEKOBvts3Iu5vz7bAbg3TtDd0sRDsTNDlmZiqlQNSmQ0CgYEA1jBa
4METCzuNpnob/na4r/XJ6cU/jTlwWrCEdz9qiQf6G5X8x7ppMS81mJXlxuI2bXa+
9ljW06YoApDxHhkICv3cmifuWuSQBynKDDoTfF/BsW1Jedgpv+Pim6yEFtypaR72
6dUpvbxV4F1DtMGcI1AgMb+ioi7+6KZQnM+nqZ8CgYEArl/5gQOUH98tmVVNIFtr
e62UEna7G09nb731LSQf4f3asGSbnB3PBt1MZto7O/x78IVXO9EEAjzAbV3AEYxI
hbgNS+8wGTNuWyVVjhZmMxn8N4XWOETOTj/A5ioijZa2VPcoFNDy85vAkG7G04N2
JwXx8K/0CKNX+R5634fv7IUCgYB2g+UVLeBCu94iOrjYsYp52q+xyXHjy9+OXtO9
Q/rH/gD3WKO5RD1GeM/YMUEmLi9dnHIHz5p3HB5RZS/1rnYT1upE5kluQ8AqJoZl
A5GapUWAzm70m5ZmVksiRnAEUm7u+rI3KrrhAKAn+JMpJmQl6gUWYeo0gXqM8tHy
IrisEwKBgQDDXoqCKLQMABpdDUU4C/hiWgvZOmxfN51SGxwqWFv898iiITPCWqk2
58Op+VpPjLXoNKhGkV4D4NNQyVhSf/C4ISsYucB/m46EtB49KIqmi9JnPZuY3LvB
Wbtbx4e6D+oSAENTP0vEZesXwuRlzKuvx6cZkEWp5Sn9CmObViHXEA==
-----END RSA PRIVATE KEY-----

使用"openssl rsa -in key.pem -outform der -out key.der"将pem文件转换成der文件(二进制表示形式),得到的内容如下:

0<82>^D¤^B^A^@^B<82>^A^A^@¶`ÅÍ<86> ^_ÐêÚ»^G5R^T¦W<88>v"<91>§'5¨^@ÊÄ<9f>tÎÖ<9d>ñOx%%Ó;)ßâ®KXß^Q<97>c×úf¬&ð8<83>µa<96>^]^_^MÿÁ®^Cÿ*ç<8d>;´Cãòö!;<9f
>^Wó£^L <97>ý<94>3/)^H#´äÜ:^[^ú÷ý^[ñ^HáPßÒßÈi#<84>¤ÂÂ4}vtÈ£Ø/GviÙ<98>ÄÌ<90>©^Dâ&Lú¨þÇ´uñ(^VS].h­^RÚN­I}<99>*^_áæ<8a>E¶Ó<81>qgá§^A|
K<88>^[^W5^Oó<98>>9^R<92>;È+<82>ô<8a><Ìî*Z^O<99>E2Û^F<89>Ê<91> ñçqEg^@ì®{ÑÔãÀýT<91>^Fî^VO]í<80>Ì<9d>||"6ÒÁ·{J<94>>¬<86>Ïê<9a>MñѤ^S^B^C^A^@^A^B<8
2>^A^@^G^KÎ^X<96>©ÿ^P¯B,^_§+¸¨<84><91>=^_0Éhvf;A<9a>?^^à.â<83>D2¼^\®^@<87>)£4`¬ÚQo«çØ@Ç=éâ^E^T¨ä<87>Ó^?RöD¦ÚàéyGi;<86>?^HËWæY¢<8c>^V^WÜGkÆ^x^S\mÌ
¹ÅtñBxúJn^Q<8d>Âö"Ë<8a><8e>¥T¦<98>ï¯ßy^H"^HR}á Ý[¤<9e>^Qr0d^@^L<84>æ|º<9e>ª<87>U<87>mÄÐJ¸fúAþ³ü
:ax²^Vï²^Tª^L)j<87>^S'^]µ$ÅHÄb½ckÑ<98>K6))pòá<8a><8b><88>^V^L   ûÑÿ~<9e>­³Ø"^RÄP^V<94>^[<8e>G<98>=<89>Vgw»^AÄ6^ÀÇ£c+<84>×!h<88>êíÍ^^ýß.7®PY$ï^P<8
2>¡<9e>h¡^B<81><81>^@Ùú¼Md^H<8d>c^ö9J^Sù[½í¿^FûP¬^B¦tåE)»>,ñ^Pø5MxÖ^UÏ<88>{^HE^]7GbHÞ½¦<9d>^F©_ðl<82>¬ñ$<8f>(ÂÓ{Wp<8f>9«³úñÔç^PcÅ^[¡`¼GIh<9c>üô(<
8b>&^^½Z^P£<81>¾Û7"îo϶Àn^MÓ´7t±^PìLÐå<99><98>ª<95>^CR<99>^M^B<81><81>^@Ö0ZàÁ^S^K;<8d>¦z^[þv¸¯õÉéÅ?<8d>9pZ°<84>w?j<89>^Gú^[<95>üǺi1/5<98><95>åÆâ
6mv¾öXÖÓ¦(^B<90>ñ^^^Y^H
ýÜ<9a>'îZä<90>^G)Ê^L:^S|_Á±mIyØ)¿ãâ<9b>¬<84>^VÜ©i^^öéÕ)½¼Uà]C´Á<9c>#P 1¿¢¢.þè¦P<9c>ϧ©<9f>^B<81><81>^@®_ù<81>^C<94>^_ß-<99>UM [k{­<94>^Rv»^[Ogo½õ
-$^_áýÚ°d<9b><9c>^]Ï^FÝLfÚ;;ü{ð<85>W;Ñ^D^B<Àm]À^Q<8c>H<85>¸^MKï0^Y3n[%U<8e>^Vf3^Yü7<85>Ö8DÎN?Àæ*"<8d><96>¶T÷(^TÐòó<9b>À<90>nÆÓ<83>v'^Eñð¯ô^H£Wù^^
zß<87>ïì<85>^B<81><80>v<83>å^U-àB»Þ":¸Ø±<8a>yÚ¯±ÉqãËß<8e>^Ó½CúÇþ^@÷X£¹D=FxÏØ1A&./]<9c>r^GÏ<9a>w^\^^Qe/õ®v^SÖêDæInCÀ*&<86>e^C<91><9a>¥E<80>Înô<9b>
<96>fVK"Fp^DRnîú²7*ºá^@ 'ø<93>)&d%ê^E^Vaê4<81>z<8c>òÑò"¸¬^S^B<81><81>^@Ã^<8a><82>(´^L^@^Z]^ME8^KøbZ^KÙ:l_7<9d>R^[^\*X[ü÷È¢!3ÂZ©6çéùZO<8c>µè4¨F<9
1>^^CàÓPÉXR^?ð¸!+^X¹À^?<9b><8e><84>´^^=(<8a>¦<8b>Òg=<9b><98>Ü»ÁY»[Ç<87>º^Oê^R^@CS?KÄeë^WÂäeÌ«¯Ç§^Y<90>E©å)ý
c<9b>V!×^P

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值