所有提交的电磁系统将被重定向到在线手稿提交系统。作者请直接提交文章在线手稿提交系统各自的杂志。

通过高效的NONCE代DSA安全增强

阿卡什唠叨* 1,苏尼尔Karforma2
  1. 大学的计算机科学系,Burdwan, Burdwan,西孟加拉邦,印度
  2. 大学的计算机科学系,Burdwan, Burdwan,西孟加拉邦,印度
通讯作者:阿卡什唠叨,电子邮件:nag.akash.cs@gmail.com
相关文章Pubmed,谷歌学者

访问更多的相关文章全球研究计算机科学杂志》上

文摘

数字签名算法(DSA)已成为事实上的标准进行身份验证的交易实体自成立以来由NIST作为标准。DSA签名过程的不可分割的一部分的生成一个随机数称为nonce或一个短暂的关键。如果不采取足够的谨慎而生成nonce,它会导致私有密钥的发现为关键安全违规进一步铺平了道路。规定的标准算法生成nonce NIST,以及广泛的随机数生成器实现的,不能作为真正的随机源,因此敞开了DSA算法攻击,导致可能伪造签名在电子交易中,由潜在的攻击者。此外,用户可以任意选择nonce,导致阈下信道存在通过每个签名交换消息,这可能是难以忍受的,是为了安全起见。在这篇文章中,我们已经改善了DSA算法提出了一种有效的安全nonce-generation过程,确保生成nonce足够随机以及独特的为每个生成的签名,从而确保签署的过程。此外,算法还确保没有阈下信道在DSA。

介绍

数字签名方案是一个过程,一个接收器可以验证消息的来源的真实性,同时保证其完整性。该计划是基于公钥加密系统[1],要求签名者维护两个键——一个私人(或接收),和另一个公钥;后者认为是安全维护的一个可信中心(TC),并可以在任何人身上。私有密钥是严格而又秘密地维护它的主人。文件签署的消息摘要,计算第一,紧随其后的是应用的签名算法消化利用签名者的私钥。可选地,而不是消化,整个消息可以使用,但是,使用消息的消化而不是在计算上更高效的用于签署。原始文件,生成的签名,和可选的签名者的公钥发送到接收机,重新计算消化和利用签名者的公钥验证签名。如果验证成功,消息是真实的(即它确实是申请人已发送消息),它在运输过程中没有改变。这个方案的安全在于计算求解离散对数困难问题[18],否则导致签名者的私钥的发现对应的公钥。
签署过程需要一个整数的一代,称为nonce或短暂的关键,必须随机或伪随机生成的,必须是唯一的,所有消息来自发送方。如果攻击者恢复的nonce用于签名的消息,也许利用伪随机数发生器用于生成的一些性质,他/她可以恢复签名者的私钥。此外,如果签名者使用相同的nonce签署两个消息,攻击者可以恢复私有密钥,即使他/她不知道使用的实际价值nonce [13] [14]。
数字签名标准(DSS)[2]表明两种方法生成nonce,但是容易受到晶格攻击如图所示通过各种论文[5][7][8][9],由于使用随机线性同余发生器(篮板),遭受的缺陷预测曾用来初始化它的种子。篮板的形式:f (n) = (a + b×n) (mod),, a, b,和m参数到函数。看似随机数函数返回的,因为数字序列形成一个非常大的一部分,是无法即时的比较。然而,这些参数的值可以估计是否错误地显示大量的目前。
现时标志,而不是随机生成,选择任意的签名者,揭示了DSA计划的另一个缺陷。存在一个阈下信道在DSA[17],通过签名者和验证者可以彼此通信秘密通过交换消息签名。因为然而目前必须是随机的,和消息,天生是——签名者必须的非随机加密消息,最好是用一次性垫,然后使用此nonce随机加密消息。应该清楚,消息的最大长度应该是现时标志的大小。接收方,另一方面应该意识到为了获得此nonce签名者的私钥,因此,该消息。
我们的方案生成目前安全,并不是基于线性同余数量发电机。相反,它使用密码安全的伪随机数生成器(CSPRNGs)以及附加掩蔽过程,使nonce生成过程预期的安全。本文的第二部分概括在数字签名算法的NIST的标准,其次是攻击的概述DSA在第三节,几个晶格以及non-lattice攻击,专门针对DSA的nonce生成过程。4.1节介绍了安全nonce生成算法,和部分4.2 - 4.10解释算法的关键步骤。最后在第五节中,我们总结的结果和一个非正式的安全分析算法,并实现它的优点在任何基于DSA签名生成方案。

数字签名算法

美国国家标准与技术研究院(NIST)美国政府公布的数字签名标准(DSS)在酒吧FIPS 186 - 3[2],它提出了一个算法,称为数字签名算法(DSA),数字签名的生成和验证。简要回顾下面的算法。在DSA,可信中心(TC)负责生成和发布系统参数为公共使用。
参数的大小
(L, N):这是一对素数生成系统的参数。为了我们的算法:L = 2048和N = 224。
系统参数
p: '模量,2 l - 1 < p < 2 l
问:一个主要因子(p - 1), 2 n - 1 < q < 2 n
g: h (p - 1) / q (mod p),在h是一个随机整数1 < h < p
私钥和公钥
x:每个用户选择一个整数x作为他的私有密匙,用1 < x <问
y:对应于用户计算x, y = gx (mod p)
签名的一代
签名者计算下列值对应一个消息m签署:
凯西:一个秘密数字是独一无二的每个消息;k是一个整数,它是随机或伪随机生成的,在[1,q1]。(在本文档中,k被称为“强奸犯”)
r = (gk (mod)页)(mod问)
s = (k - 1。(H (m) + x.r)) (mod问),H (m)是一个单向的无键的哈希函数
两人(r, s)构成了消息的数字签名,签署了由用户x与y公钥和私钥。

签名验证

来验证签名(r, s),收件人计算:
w = s - 1 (mod问)
u1 = (w×H (m)) (mod问)
u2 = (w×r) (mod问)
r ' = (gu1×yu2 (mod)页)(mod问)
如果r = r的签名是真实的,否则不是。

DSA的袭击

计算DSA安全的基础
DSA的安全性是基于求解离散对数问题的计算困难'字段和子组,它可以被证明是在随机预言模型[3],它假设哈希函数像一个随机的甲骨文,即其价值观是独立和均匀分布。是在标准的警告说,如果nonce (k)披露,秘钥可以很容易地恢复。
标准的篮板的不安全感
标准随机数生成器(篮板)通常用于生成随机比特在软件/硬件使用线性同余发生器(LCG)。其中最常用的是Knuth的LCG [15]。Belarre所示et al。[4]的秘钥DSA可以恢复,如果生成nonce Knuth的线性同余发生器与已知参数。这种攻击可以查清的,依赖于Babai近似算法[5],[6]基于微光算法。Howgrave-Graham和智能[7]表明,即使目前已知的只是部分,即只显示它的一些碎片,一个合理数量的签名,许多启发式,恢复密钥攻击是可能的。最后,阮和Shparlinski[8]提出了一种可证明的多项式时间攻击DSA在目前已知部分,在两个假设:问的大小不应太小相比,p,和哈希函数H碰撞的概率不应太大而1 / q。在这种情况下,如果一定数量的随机消息μM和随机目前k [1, q1],对日志(1/2)问k的最低有效位,然后在多项式时间内,一个是可以恢复的,签名者的密钥x。

安全NONCE代

该算法
我们的算法提出了增强现有签名算法与安全nonce-generation过程代替现有的方案推荐的DSS。我们的算法(算法)使用一个密码安全伪随机数发生器(CSPRNG),而不是简单的篮板额外处理来提高安全性。
一个简短的概述我们的算法(算法)如下:
一)算法将两个参数作为输入;首先是签署的消息或数据(第一个2048字节,如果消息大于),存储在byte-vector M,第二个是签名者的224位私有密匙。算法首先填充和将信息划分为512位块,而224位的密钥经过两轮key-expansions生成一个512位的密钥算法适用于我们。初始key-expansion(4.2节)扩大从224位到256位。这就是所谓的部分扩展键(油漆)。第二轮扩张扩张Rijndael算法(II),(这是标准Rijndael key-expansion[10]常规执行两次),进一步扩大到512位(4.4节)。这是现在被称为完全展开关键(FEK)。
然后b)算法进行迭代32倍,一旦为每个512位块。在每一轮,执行以下步骤:
我。一个不同的512位圆键生成使用CSPRNG在每一轮。
二世。这一轮的512位信息块接受block-substitution(4.6节,算法III)使用油漆作为键,获取Substituted-Message-Block (SMB)。Feistel网络的替代实现8轮,每一轮包括以下:
)不同的256位圆键生成算法(IV)对每一轮使用油漆作为输入。
b)信息块分为两半,32个字节。一份自由和圆键然后加密算法(使用V)。
c)的右半边是XOR-ed加密块,最后,下一轮的数据由原来的左中场串联和当前修改的右前卫。
三世。SMB和圆键通过Shabal Key-Permutation计划[11]的置换操作(4.7节),获得896位输出。
第四。896位交换块进行压缩(4.8节,图1),后跟一个替换(4.9节)使用non-invertible盒Z(见表1)获得512位输出,称为Compressed-Permuted信息块(先锋)。
诉修改FEK存储位XOR的先锋和FEK的当前值。
c)修改的FEK使用HMAC sha - 512,散列,使用油漆作为键,得到消化(4.8节)。
d)摘要在前一步获得的压缩(4.8节,算法VI),从512位到224位,最终生成nonce。
详细描述的算法步骤如下所示。
图像
最初关键的扩张
我们的算法需要一个256位的密钥,但签名者的私钥只有224位。这要求一个关键的扩张,随机选择4个字节28-bytes编造的关键。这4个字节被附加到得到一个32字节的密钥用于后续步骤。
消息填充和分裂成几块
消息或数据首先null-padded 512位的倍数。然后分成相等的512位。只有第一个2048字节的消息被认为是。n的值被设置为块的数量,所以,在1≤n≤32。
最后关键的扩张(Rijndael扩张)
扩大秘密密钥(256位)和常数(见表1)被传递给第二个关键扩张常规新一轮的扩张,从256位到512位使用Rijndael [10] key-expansion算法(算法II)。key-expansion是通过将输入分成2组128位,然后每组扩大到256位。状态数组是一组两个4 x4 byte-matrix,,关键是复制到列为主的时尚,和随后的一点宣读行操作32字节的块。然后XOR-ed信息块。byte-substitution由子程序G(从标准Rijndael子程序)使用Rijndael盒执行替换。这个子程序返回的值与修改后的数据块XOR-ed扩展数据块进行初始化。然后用作种子在随后的迭代轮,在每一步的扩展数据块的基础上生成之前extended-block及其对应的modified-data-block。最后生成512位输出交替衔接的一个数据块和一个extended-data-block。
图像
安全的随机密钥生成
该算法在n,其中n是512位的数量在消息块。每一轮需要一个512位的随机密钥使用密码安全伪随机生成器生成,因此,非常难以预测。标准CSPRNG实现广泛使用在各种编程语言库。
初始块替换
在每一轮中,首先结合关键使用相应的信息块替换算法(算法III)。8轮,每一轮的过程由使用不同的圆键,生成的原始密钥使用圆键生成算法。圆的圆键生成,使用算法四世,由圆left-shifting上一轮的圆键1或2位(取决于特定回合),然后XOR-ing常数P(见表1)。在block-substitution过程实现Feistel[16]密码块- 512位的大小。在每一步,256位的数据分为两个部分。自由是一样的右半边上一轮后生成的。右半边XOR-ing前面得到的左中场,round-cipher算法的输出,以previous-right-half和圆键为参数。round-cipher算法(算法V)执行一个字节替换使用Rijndael天地盒的数据和xor的圆键返回结果。
块排列(Shabal排列)
块替换后,数据经过一个键排列使用Shabal[11]键排列算法,和圆键前一步中生成的。块的排列结果由一对分别为384和512位,然后连接到一个896位的输出。这个输出然后美联储CompSub函数(参见算法),由2个步骤:块压缩第二块替换。
图像
块压缩
Shabal排列输出算法然后使用七位压缩压缩,从最重要的一些组7中的最低有效位和取代每组4比特咬使用XOR操作,如图1所示,将一个512位的输出。
第二块替换
512位块压缩阶段的输出是输入一个替换阶段,这是不同于第三块替换执行算法。这里,每个64字节是通过一个16 x16 non-invertible盒Z(见表1)。替换的结果是最后XOR-ed累积密文块G主要nonce生成算法。
摘要生成和压缩
Shabal排列的结果传递给消化生成函数,这是一个键控HMAC使用sha - 512算法,生成消息摘要。结果512位消化进一步压缩算法(VI)最终生成224位现时标志。压缩过程由三个步骤组成。首先,每一对连续的消化XOR-ed在一起,导致了一个256位的消化。这是紧随其后的是第一个4字节XOR-ed与相应的最后4个字节,然后丢弃过去的4个字节,留下一个224位的消化。最后,这是XOR-ed恒Q(见表1),生成nonce,可以用于DSA签名生成过程。
图像

结果和分析

结果
我们的算法是使用Java实现[20]。我们的算法中使用的常量列表在表我[19]。算法的运行时间比简单的长伪随机nonce生成过程建议在DSS。然而,我们的算法更加安全,仍然是快,以一个恒定的时间复杂度O(1),因为它是独立于消息长度。根据我们的结果,我们的算法表现出强烈的雪崩效应,如表二所示。两个卡方测试的结果以及蒙特卡罗试验,表明强烈的随机性是列在表二世。
分析
通过算法生成的目前是安全的用于数字签名如下:a)结果目前从我们的算法并不偏向低范围的DSA域参数q,由于缺乏任何模问操作,否则有被证明是致命的[9]。
6。B)由于采用CSPRNG轮密钥生成,输出是完全不可预知的和独特的每次消息签名。消息本身的夹杂物的生成NONCE增添了另一层的随机性,尽管消息,处理里面穿过我们的算法,足够随机输出。这是建议从我们的随机性测试。
7所示。C)自生成NONCE通过我们的算法和用户没有影响力的控制它,DSA的阈下信道被关闭。虽然用户可以选择明文,生成NONCE无法预测,因此,我们的算法在这方面是安全的。
8。D)算法使用NON-INVERTIBLE S-BOXES以及标准单向散列函数,因此,从NONCE私有密钥不能被恢复。
图像
图像

结论

数字签名的基础形式在现代通信消息的真实性和不可抵赖性。DSA算法的整个安全在于保持签名者的私钥的秘密。然而,随机的nonce的泄漏,严重的损害这个安全通过使攻击者计算从这个临时的私有密钥。因此,它是非常重要的,这个随机生成nonce足够随机以一种更安全的方法,不可预测的,每个消息和独特的。常见的伪随机序列生成器不足等目的,因为他们可以预测的。我们的算法改进了现有的DSA算法提高其安全时间复杂度为代价的。我们相信这个DSA的增强版,可以成功地用于实体验证电子交易要求严格的身份验证电子银行[12],电子商务[23],电子学习[21],电子政务[22]。
图像

引用

  1. r·l·莱维斯特a·沙米尔l .期刊》1978。一个方法获取数字签名和公钥密码体制。通讯。ACM,卷。21岁(1978年2月),120 - 126。
  2. FIPS酒吧- 186 - 3。2009年。数字签名标准(DSS),(2009年6月),NIST的。
  3. e . Brickell温泉d . Pointcheval s Vaudenay和m .容。2000。设计验证基于离散对数的签名方案。Proc. PKC的2000卷。1751信号,斯普林格出版社,(2000),276 - 292。
  4. m . Bellare s .金水酒,d . Micciancio。1997。伪随机数生成加密算法:DSS的情况。97年Proc.加密的卷。1294的信号。IACR,斯普林格出版社,(1997)。
  5. l . Babai》1986。减少Lovasz晶格和最近的格点的问题。Combinatorica 6:1-13, (1986)。
  6. a . k . Lenstra h·w·Lenstra, Jr .)和l . Lovasz》1982。保理与有理系数多项式。Mathematische安。,261, (1982), 513-534.
  7. n . a . Howgrave-Graham和n . p .聪明。格攻击数字签名方案。23岁的设计、编码和密码(2001),283 - 290。
  8. 冯氏。问:阮,伊戈尔·e·Shparlinski》2002。不安全的数字签名算法与部分已知的目前。《密码学,15 (3),(2002),151 - 176。
  9. h . Kuwakado田中和h。1999。与小ElGamal-type签名方案的安全参数。Commun IEICE交易电子基础。,Comp。科学。,E82-A: (1999), 93-97.
  10. 琼德门,文森特Rijmen》1998。AES建议:Rijndael, (1998)。
  11. 安妮Canteaut,等。2008。Shabal:提交NIST的加密散列算法的竞争。(2008年10月)。
  12. 彼得•Hanacek卡米尔Malinka,雅罗西克谢弗》2010。电子银行安全——一个比较研究。航空航天和电子系统杂志。IEEE。25.1,(2010),29-34。
  13. Bruce Schneier,公钥数字签名算法,应用密码学:协议、算法,用C代码和源泉,第二版。2006年,约翰·威利& Sons Inc . ch。20秒。20.1,492页。
  14. 乔纳森菲尔德斯。(2011年1月6日)。iPhone黑客发布秘密索尼PlayStation 3键。BBC新闻。检索2014年8月25日,从http://www.bbc.co.uk/news/technology - 12116051
  15. Donald Knuth。1970。随机数生成器。(1970年12月)。美国专利号3548174。
  16. h . Feistel》1973。密码学和计算机隐私,《科学美国人》,228卷,不。5,(1973),15 - 23。
  17. 古斯塔夫斯j·西蒙斯。1985。阈下信道和数字签名。密码学的发展。激飞柏林海德堡,(1985)。
  18. 凯文·s . McCurley。1990年。离散对数问题。Proc.协会。在应用数学。卷42。(1990)。
  19. WolframAlpha。可用:http://www.wolframalpha.com
  20. Java安全。检索2014年8月10日,来自http://docs.oracle.com/javase/8/docs/technotes/guides/security/index.html
  21. 埃德加·r·Weippl。电子学习的安全。施普林格》2005。
  22. 罗伊的阿布,苏尼尔Karforma。风险和补救措施的电子政务系统。2011。东方计算机科学与技术杂志》上。卷4。2号。(2011年12月),页329 - 339。
  23. 沃里克福特,和迈克尔·s·鲍姆。2000。安全电子商务:建设基础设施用于数字签名和加密。普伦蒂斯霍尔PTR。(2000)。