RSA公私钥结构

RSA公私钥结构语法:

RSAPublicKey::=SEQUENCE{

modulusINTEGER,--模值n
publicExponentINTEGER--公开指数e}

RSA私钥结构语法
RSAPrivateKey::=SEQUENCE{
versionVersion,--version是INTEGER类型的0
modulus INTEGER,--模值n
public ExponentINTEGER,--公开指数e
privateExponent INTEGER,--d
prime1 INTEGER,--p
prime2 INTEGER,--q
exponent1 INTEGER,--dmod(p-1)
exponent2 INTEGER,--dmod(q-1)

coefficient INTEGER--(inverseofq)modp}


在组织公私钥DER编码时需要注意:

1)上述TLV结构中:

V值长度<0x80,L表示数据的长度;

V值长度>=0x80的时候,L为0x8X,X表示的L长度要占用的字节数,X个字节用来表示V的长度。

2)RSA公钥N的第一个字节如果大于0x80,则需要在公钥值前面补00,这是因为modulus 为一个大整数,最高位为符号位,其为1时,就是负数,所以要在最高位填充0x00以保证不为负。所以公钥TLV应该是:02 81 81 00 [128字节个公钥值]。

3)RSA私钥的N,d,p,q,Dp,Dq,Mp也需要考虑(2)中的第一个字节如果大于0x80的情况。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值