zoukankan      html  css  js  c++  java
  • PKCS#1规范阅读笔记2--------公私钥ASN.1结构

         PKCS#1种介绍了哈希算法的OID等的ASN.1结构,因为使用ASN.1的解码工具(比如:ASN1View)时,会自动显示出各OID的含义,所以这里就不说明了。下面就只简单摘抄一下RSA公私钥的ASN.1的结构。

         ASN.1的编码回头会专门介绍,为了便于理解:SEQUENCE,暂时就理解为C语言里面的结构体就好;INTEGER,理解为正数类型就好。

         RSA公钥:

         RSAPublicKey :: = SEQUENCE{

             modulus              INTEGER,   ------ n(模长,正整数)

             publicExponent    INTEGER    ------ e (指数,3~n-1范围内的正整数)

          }

         RSA公钥的ASN.1结构,可以表述为:名为RSAPublicKey的这个结构呢,就可以用来表述一个RSA公钥了。它有两个INTEGER型变量:modulus和publicExponent。

         RSA私钥:

         RSAPrivateKey :: = SEQUENCE{

             version                 Version,

             modulus               INTEGER,   ------ n

             publicExponent     INTEGER,   ------ e

             privateExponent    INTEGER,   ------ d

             prime1                 INTEGER,   ------ p

             prime2                 INTEGER,   ------ q

             exponent1            INTEGER,   ------ d mod (p -1)

             exponent2            INTEGER,   ------ d mod (q -1)

             coefficient            INTEGER,   ------- (inverse of q) mod p

             otherPrimeInfos    OtherPrimeInfos   ------ OPTIONAL(当version为0时,不存在;当 version为1时,必须有)

         }

         Version :: = INTEGER{ two-prime(0), multi(1)}

         版本号的ASN.1结构可以表述为:名为Version的结构体,用于描述版本信息。它类似于枚举类型,其变量类型为INTEGER,取值为0或1。

         OtherPrimeInfos :: = SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo

         OtherPrimeInfos 是由 OtherPrimeInfo组成的数组

         OtherPrimeInfo :: = SEQUENCE {

            prime          INTEGER,   --- ri

            exponent     INTEGER,   --- di

            coefficient    INTEGER    --- ti

         }

         推荐一篇专门介绍ASN.1编码的文章:《ASN.1/BER/DER 编码子集入门指南》

  • 相关阅读:
    PAT甲级——A1091 Acute Stroke【30】
    PAT甲级——A1090 Highest Price in Supply Chain
    PAT甲级——A1089 Insert or Merge
    PAT甲级——A1088 Rational Arithmetic
    PAT甲级——A1087 All Roads Lead to Rome【30】
    【php中的curl】php中curl的详细解说
    【php中的curl】使用curl完成POST数据给飞信接口
    【php中的curl】php中curl的使用
    【socket】php实现socket
    【socket】用PHP的socket实现客户端到服务端的通信
  • 原文地址:https://www.cnblogs.com/o--ok/p/5618053.html
Copyright © 2011-2022 走看看