X509 serialNumber

时间:2016-05-04 14:41:58

标签: x509

“CA /浏览器论坛基准要求”第7.1节说明了以下内容:

  

CA应该生成具有至少20位熵的非顺序证书序列号。

同时,RFC 5280第4.1.2.2节规定:

  

证书用户必须能够处理最多20个八位字节的serialNumber值。符合CA不得使用超过20个八位字节的serialNumber值。

我可以使用哪个整数范围来满足这两个要求。这是我的理解,最大。值将是2 ^ 159(730750818665451459101842416358141509827966271488)。什么是分钟。值?

1 个答案:

答案 0 :(得分:0)

CAB要求已更改为至少64位熵。由于正整数表示中的前导位必须为0,因此有多种策略:

  • 产生具有64位的随机位串。如果前导位为1,则在前面再添加7个随机位。这样做的缺点是,如果生成的是63位还是64位,则不明显
  • 生成具有64位的随机位字符串,并添加前导0字节。它仍然很紧凑(仅浪费7-8位),但是很明显它具有64位熵
  • 产生一个长度超过64位的随机字符串,例如71或127位(+前导0位)。 16字节似乎是一个常见的长度,并且远远低于20字节的限制。

BTW,因为由于互操作性的原因,目前尚不清楚最大20字节的长度是否包含潜在的0前缀,您生成的比特数不应超过159位

通过生成0到(2 ^ x)-1(含)之间的随机数,可以产生具有x位熵的随机整数