Digital Signature Algorithm (DSA)是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。算法中应用了下述参数: p:L bits长的素数。L是64的倍数,范围是512到1024; q:p - 1的160bits的素因子; g:g = h^((p-1)/q) mod p,h满足h < p - 1, h^((p-1)/q) mod p > 1; x:x < q,x为私钥 ; y:y = g^x mod p ,( p, q, g, y )为公钥; H( x ):One-Way Hash函数。DSS中选用SHA( Secure Hash Algorithm )。 p, q, g可由一组用户共享,但在实际应用中,使用公共模数可能会带来一定的威胁。签名及验证协议如下: 1. P产生随机数k,k < q; 2. P计算 r = ( g^k mod p ) mod q s = ( k^(-1) (H(m) + xr)) mod q 签名结果是( m, r, s )。 3. 验证时计算 w = s^(-1)mod q u1 = ( H( m ) * w ) mod q u2 = ( r * w ) mod q v = (( g^u1 * y^u2 ) mod p ) mod q 若v = r,则认为签名有效。 DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们是否是随机产生的,还是作了手脚。RSA算法却作不到。
标签: Algorithm Signature Digital Schnorr
上传时间: 2014-01-01
上传用户:qq521
随着计算机运算速度的提高和计算机网络的发展,基于离散对数问题和大整数因子分解问题的数字签名算法越来越不能满足信息安全的需要。为了满足信息安全的要求,安全性依赖于椭圆曲线离散对数困难问题(ECDLP)的椭圆曲线密码体制是当前密码学界研究的热点之一。现有的求解ECDLP的算法都是全指数时间复杂度的算法。由于专用集成电路具有速度快、性能好、安全性高等优势,使得采用专用集成电路来实现椭圆曲线密码体制己成为主要趋势。因此,本课题着眼于应用,针对基于椭圆曲线数字签名算法的FPGA实现进行了较为深入的探讨与研究。 本课题从实际应用的需要出发,以初等数论、有限域理论、数字签名技术和椭圆曲线理论为依据,确定了如下基于椭圆曲线数字签名算法的硬件实现方案:首先,对实现基于椭圆曲线数字签名算法所需的算法和技术进行了剖析和系统设计。然后,按照层次化、模块化的设计思想,在Xinlinx公司的ISE 7.1工具中,采用硬件描述语言VHDL作为设计输入,对各运算器和控制模块进行电路设计;采用Menter公司的ModelSim SE 6.2b工具对之进行功能仿真,以保证底层设计的正确性。最后,在确保每个模块的设计正确的前提下,完成电路的总体设计,再进行总体设计的仿真与测试。 本课题对Schnorr数字签名算法的改进,实现了比未改进前的Schnorr数字签名算法平均节省三分之一的运行时间。对基于椭圆曲线数字签名算法的设计也获得了良好的指标:产生签名只需要1ms多的时间,验证签名也需要不到3ms。本课题的研究对实现电子交易安全方面有重要的作用,尤其是在密钥分配、电子货币、电子证券、电子商务和电子政务等领域都有重要的应用价值,其成果具有广泛的应用前景。
上传时间: 2013-04-24
上传用户:独孤求源
密码学界牛人Victor Shoup用C++编写数论类库。 NTL is a high-performance, portable C++ library providing data structures and algorithms for arbitrary length integers for vectors, matrices, and polynomials over the integers and over finite fields and for arbitrary precision floating point arithmetic. NTL provides high quality implementations of state-of-the-art algorithms for: * arbitrary length integer arithmetic and arbitrary precision floating point arithmetic * polynomial arithmetic over the integers and finite fields including basic arithmetic, polynomial factorization, irreducibility testing, computation of minimal polynomials, traces, norms, and more * lattice basis reduction, including very robust and fast implementations of Schnorr-Euchner, block Korkin-Zolotarev reduction, and the new Schnorr-Horner pruning heuristic for block Korkin-Zolotarev * basic linear algebra over the integers, finite fields, and arbitrary precision floating point numbers.
标签: high-performance providing portable library
上传时间: 2014-01-04
上传用户:exxxds