3082013A020100024100A37D829F96226E5B7994EED72AB2C1E1A1A1DDD1BB3D8D7757BE8EE1B2CE68CDD69C87B58B28DD
BE9F7CD3549355FDB9CA00168973022DB54CA0F294C02D8BE302030100010240462DC63882D5DCD15F6B52EB01E521DC9C
E942B298D15F3C6F69D9238101A172AA6624FF1D809CEE7837F0F5D8A65CEB842135970AE192A92BD60A01C724A4A1022100D
708D658770058CB52D63E63D2E7CB81B31F66BCD2FBC32BCE2E2005D89BBBCF022100C2A2E086BBDAD1E87119F5623B507
AC883AB904FA9029DD5FBD114CEBD498FAD02204A8043532F17ADABF42D4A3C67ABEB742A4D2CD92AF8132CB02886EBBF9A
653D0220087FF06A31DDF678BE27B20D9E257F972E18D9EE80A4FA9B93A9A7CCF77B34E902210080AD5A6062279F99650CF39
BDAC2CD061CCF5E081D500065856AF12C98A0AE78
分解后:
3082013A
020100 -- 版本号
0241
00A37D829F96226E5B7994EED72AB2C1E1A1A1DDD1BB3D8D7757BE8EE1B2CE68CDD69C87B58B28DDBE9F7CD3549355FD
B9CA00168973022DB54CA0F294C02D8BE3
0203010001
0240
462DC63882D5DCD15F6B52EB01E521DC9CE942B298D15F3C6F69D9238101A172AA6624FF1D809CEE7837F0F5D8A65CEB8
42135970AE192A92BD60A01C724A4A1
0221
00D708D658770058CB52D63E63D2E7CB81B31F66BCD2FBC32BCE2E2005D89BBBCF
0221
00C2A2E086BBDAD1E87119F5623B507AC883AB904FA9029DD5FBD114CEBD498FAD
0220
4A8043532F17ADABF42D4A3C67ABEB742A4D2CD92AF8132CB02886EBBF9A653D
0220
087FF06A31DDF678BE27B20D9E257F972E18D9EE80A4FA9B93A9A7CCF77B34E9
0221
0080AD5A6062279F99650CF39BDAC2CD061CCF5E081D500065856AF12C98A0AE78
302B0201000204741882490203010001020424E4711D020300D40F0203008C270203008D9F02024C6B02021CBE
分解后:
302B
0201 00 --RSA版本号,一般00
0204 74188249 --模数n,10进制 1947763273,二进制 1110100 00011000 10000010 01001001(31 bits长)
0203 010001 --公钥指数e, 65537
0204 24E4711D --私钥指数d,十进制 618950941
020300 D40F -- p,54287
020300 8C27 -- q , 35879
020300 8D9F --d mod(p-1),十进制 36255
0202 4C6B --d mod(q-1),十进制 19563
0202 1CBE --CRT系数,十进制 7358
采用CRT(中国剩余定理-肩上)形式表示:
RSAPrivateKey ::= SEQUENCE {
version Version, 当前的RSA版本,一般是00
modulus INTEGER, -- n 是RSA 合数模n
publicExponent INTEGER, -- e 是RSA 的公开幂e
privateExponent INTEGER, -- d 是RSA 的私有幂d
prime1 INTEGER, -- p 是n 的素数因子p
prime2 INTEGER, -- q 是n 的素数因子q
exponent1 INTEGER, -- d mod (p-1) 等于d mod ( p − 1)
exponent2 INTEGER, -- d mod (q-1) 等于d mod ( q − 1)
coefficient INTEGER, -- (inverse of q) mod p 是CRT 系数q–1 mod p
otherPrimeInfos OtherPrimeInfos OPTIONAL
}
DER是一个TLV编码。
SEQUENCE是总的TAG,TAG=0x30,Length=0x0258后面是数据内容。
长度的表示方法有以下2种情况:
1. 数据长度<0x80的时候,Length即为数据的长度;
2. 数据长度>=0x80的时候,Length为0x8?,表示后面跟的?表示的Length长度。例如82 01 20,82表示82后面2个字节为长度的字节长度,数据长度为0x0120。
Version的TAG为0x02,在RSA私钥的DER编码中,除了SEQUENCE的TAG为0x30,其余的为0x02。目前的Version全都为0。
modulus 值TAG为0x02,其值的类型为整型。这里要注意的是当第一个字符的最高位为1时,即为0x8?时,要在最高位填充0x00。这是因为modulus 为一个大整数,最高位为符号位,其为1时,就是负数,所以要在最高位填充0x00以保证不为负。