位置:51电子网 » 技术资料 » 其它综合

智能卡的时钟速率函数

发布时间:2008/11/22 0:00:00 访问次数:722

  1991年中期,nist(美国国家标准和技术研究所)发表了一个在报文上附加签名的加密算法的设计。这个算法在美国已经标准化了(pips 186),被称之为数字签名算法dsa(digital signature algorithm),而描述它的标准则被叫做数字签名标准dss(digital signature standard)。dsa和rsa算法是两种用得最广泛的产生数字签名的方法。dsa算法是el carnal方法的一种变型。标准化这一算法的背景是需要有一种方法可以被用来产生数字签名,但不能被用来加密数据。因此,dsa算法要比rsa算法复杂。然而,已经证明可以用这一算法来加密数据[simmons 98]。

  和rsa算法不同,dss算法的安全性不是依赖于大数的因子分解问题,而是离散对数问题。计算表达式y=ax mod p可以很快地执行,即使很大的数也能。然而,相反的过程,对手给定的y,a和p来计算笳,则需要极大的计算量。

  对于所有的签名算法,首先必须把要签署的报文用散列算法缩减至预定的长度。于是,nist提出了一个适合于dss算法的算法,它被称为安全散列算法sha-1(secure hashalgorithm)①这个md5变型的散列算法从任何长度的报文均产生160位长的散列值,dss算法和rsa算法的计算一样,仅用整数执行。

  要用dsa算法计算一签名,首先必须确定下列全程量:

  p(公开):512位至1 024位素数,其长度应能被“整除;

  g(公开):(p-1)的160位的素因子;

  g(公开):g=h(p-1)/q,式中凡为满足条件凡<p-1之整数,且g>1。

  私有密钥冗必须满足下述条件。

  公开密钥y的计算如下:

  y=gx mod p

  一旦所有必需的密钥和数字都被确定后,则可对报文m签署如下:

  (1)产生一随机数品,其中k<g

  (2)计算m的散列值: h(m)

  (3)计算r: r=(gk mod p)mod q

  (4)计算s: s=k-1(h(m)+x.r)mod q

  r和s二值即报文的数字签名,dss算法包含有两个数而不是rsa算法中仅有一个数。

  签名的验证执行如下:

  (1)计算w:s-1mod q

  (2)计算u1=u1=(h(m).w)mod q

  (3)计算u2:u2=(r.w)mod q

  (4)计算v:v=((gu1.yu2 mod p)mod q

  如果条件v=s得到了满是,则报文睨未经改变且签名是真实的。dsa算法的计算时间可参见表1所示。

  表1 作为时钟速率函数的dsa算法计算时间举例
  (分为加密时间和解密时间。给出的数据有严重的变化,因为它们对密钥
的位结构有依赖性,计算时间可用预先计算来缩短)

  目前,还不能说这两种产生签名的算法(dss和rsa)中的那一个将能长期流行,或者那一个提供较好的长期安全性。原来的意图是标准化一种不能用于加密的签名算法,它导致了dss算法,但这已经成为泡影。这种算法的复杂性也促使它不能广泛使用。然而,标准事实上是存在的,在很多情况下,用dss和sra、产生签名的相关问题依然在议论之中。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



  1991年中期,nist(美国国家标准和技术研究所)发表了一个在报文上附加签名的加密算法的设计。这个算法在美国已经标准化了(pips 186),被称之为数字签名算法dsa(digital signature algorithm),而描述它的标准则被叫做数字签名标准dss(digital signature standard)。dsa和rsa算法是两种用得最广泛的产生数字签名的方法。dsa算法是el carnal方法的一种变型。标准化这一算法的背景是需要有一种方法可以被用来产生数字签名,但不能被用来加密数据。因此,dsa算法要比rsa算法复杂。然而,已经证明可以用这一算法来加密数据[simmons 98]。

  和rsa算法不同,dss算法的安全性不是依赖于大数的因子分解问题,而是离散对数问题。计算表达式y=ax mod p可以很快地执行,即使很大的数也能。然而,相反的过程,对手给定的y,a和p来计算笳,则需要极大的计算量。

  对于所有的签名算法,首先必须把要签署的报文用散列算法缩减至预定的长度。于是,nist提出了一个适合于dss算法的算法,它被称为安全散列算法sha-1(secure hashalgorithm)①这个md5变型的散列算法从任何长度的报文均产生160位长的散列值,dss算法和rsa算法的计算一样,仅用整数执行。

  要用dsa算法计算一签名,首先必须确定下列全程量:

  p(公开):512位至1 024位素数,其长度应能被“整除;

  g(公开):(p-1)的160位的素因子;

  g(公开):g=h(p-1)/q,式中凡为满足条件凡<p-1之整数,且g>1。

  私有密钥冗必须满足下述条件。

  公开密钥y的计算如下:

  y=gx mod p

  一旦所有必需的密钥和数字都被确定后,则可对报文m签署如下:

  (1)产生一随机数品,其中k<g

  (2)计算m的散列值: h(m)

  (3)计算r: r=(gk mod p)mod q

  (4)计算s: s=k-1(h(m)+x.r)mod q

  r和s二值即报文的数字签名,dss算法包含有两个数而不是rsa算法中仅有一个数。

  签名的验证执行如下:

  (1)计算w:s-1mod q

  (2)计算u1=u1=(h(m).w)mod q

  (3)计算u2:u2=(r.w)mod q

  (4)计算v:v=((gu1.yu2 mod p)mod q

  如果条件v=s得到了满是,则报文睨未经改变且签名是真实的。dsa算法的计算时间可参见表1所示。

  表1 作为时钟速率函数的dsa算法计算时间举例
  (分为加密时间和解密时间。给出的数据有严重的变化,因为它们对密钥
的位结构有依赖性,计算时间可用预先计算来缩短)

  目前,还不能说这两种产生签名的算法(dss和rsa)中的那一个将能长期流行,或者那一个提供较好的长期安全性。原来的意图是标准化一种不能用于加密的签名算法,它导致了dss算法,但这已经成为泡影。这种算法的复杂性也促使它不能广泛使用。然而,标准事实上是存在的,在很多情况下,用dss和sra、产生签名的相关问题依然在议论之中。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



相关IC型号

热门点击

 

推荐技术资料

罗盘误差及补偿
    造成罗盘误差的主要因素有传感器误差、其他磁材料干扰等。... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!