`
yjhexy
  • 浏览: 327791 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

DSA算法原理

阅读更多

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算法却作不到。

分享到:
评论

相关推荐

    信息安全课程设计报告

    数字签名算法的编程实现 1. 前言 3 1.1研究背景与意义 3 ...5.3 DSA算法原理 10 5.4安全性分析 11 5.5 DSA算法的实现 11 6. 测试 14 6.1认证功能 14 6.2完整性 14 6.3不可抵赖 16 7. 结论 17 参考文献 19 附录 20

    DSA.rar_DSA algorithm_DSA 源代码_DSA算法_dsa算法c_加密

    dsa加密算法,其中包含原理与源代码,可以学习下经典加密算法,脱壳时可能有用!

    RSA,DES,ElGamal,DSA,MD5,BLOWFISH加密算法原理详解

    加密算法原理及算法详解: 1.RSA 2.DES 3.ElGamal 4.DSA 5.MD5 6.BLOWFISH

    公钥算法RSA与DSA的证明推导

    证明推导了公钥加密算法RSA和签名算法DSA,RSA和DSA是SSL/TLS的基础,理解算法的数学原理,有助于加深对网络安全的理解

    python数据结构与算法

    基于python的数据结构讲解与基本算法的实现,包括几种最基本的数据结构类型和基于每种数据结构的经典算法,并通过python编程语言对算法原理进行的清晰的讲解。

    leetcode答案-DSA:数据结构+算法

    数据结构与算法),希望通过这个名字来告诫我,数据结构和算法很重要,即使工作中用的比较少,但是它能够调整写代码时的心态。同样的代码,不同人写出来却千差万别。 《C++ Primer Plus》: 学习数据结构和算法,...

    数字减影血管造影技术原理及应用

    数字减影血管造影(Digtal Subtraction Angiography DSA),又称数字血管成像(Digtal Vascular Image DVI),是一项X射线成像与电子计算机数字图像处理综合应用技术。它是70年代继CT后开发的高科技之一。DSA是用电子...

    Java中常用的加密算法及其实现原理详解-保护信息的铠甲,静默守护你的隐私

     本篇文章将详细介绍Java中常用的加密算法及其实现原理。我们将首先介绍对称加密算法,包括DES、AES和RC4。然后,我们将介绍非对称加密算法,包括RSA和DSA。继而,我们将介绍散列算法,包括MD5和SHA,最后,我们将...

    一种基于DSA变体的盲签名方案 (2006年)

    盲签名在数字现金、电子投票...通过对DSA数字签名机制进行改进,提出了一种新的DSA变体签名算法,改进算法中签名过程不再有求逆运算。然后,在DSA变体签名机制基础之上,提出一种安全、高效的基于DSA变体的盲签名方案。

    实验7 数字签名算法DSS

    掌握利用Hash算法对要传送信息提取消息摘要的方法,理解数字签名的作用及数字签名算法的工作原理,了解多种非对称加密算法都可以用来设计数字签名算法。综合运用前面实验掌握的知识和技术,利用C语言或Java语言设计...

    采用平方乘法的DSA指令缓存攻击

    DSA是使用最广泛的数字签名方案之一。 在之前的工作的基础上,本文介绍了指令高速缓存定时... 然后提出了对DSA的攻击,并提出了一种恢复随机数的算法。 最后,发起了攻击实验。 结果表明,该攻击是现实,可行,有效的。

    DSA-FMP:数据结构和算法的期末考试

    CCS0015-最终机器问题数据结构和算法的期末考试。 机器问题结合了一个学期的课程价值。基本原理进行该项目的目的是证明其在课程要求的各个方面的熟练程度和能力。使用的技术Apple Clang 11,GCC 10,mingGW用法此小...

    密码学实验七 数字签名实验

    (1) 通过实际编程,深入理解数字签名算法DSA的工作原理; (2) 了解签名和数字信封的一般使用过程; (3) 了解其他特殊功能的数字签名算法 ;

    freeSSHd配置sftp服务器.doc

    打开软件配置,进入Se rver status选项卡SSH server is not running 点击这里开启服务会报错:Keys not loaded or generated.,这时就是需要你手动切换到SSH选项卡,生成RSA或DSA算法文件才行,算法 文件是用于处理...

    java程序员用刷算法题-Data-Structures-and-Algorithms:基本数据结构和算法

    实现的流行算法和数据结构,并简要说明它们的工作原理。 如果您是一名计算机科学专业的学生,​​需要在考试中学习这些东西 - 或者如果您是一名自学的程序员,想要复习您的技术背后的理论 - 这个存储库肯定会有所...

    Java加密与解密的艺术配书源代码

    非对称加密网络应用284 8.6 小结296 第9章带密钥的消息摘要算法—数字签名算法297 9.1 数字签名算法简述297 9.2 模型分析298 9.3 经典数字签名算法—RSA 299 9.4 数字签名标准算法—DSA 306 9.5 椭圆曲线数字签名...

    Java加密与解密的艺术

    非对称加密网络应用2848.6 小结296第9章带密钥的消息摘要算法—数字签名算法2979.1 数字签名算法简述2979.2 模型分析2989.3 经典数字签名算法—RSA 2999.4 数字签名标准算法—DSA 3069.5 椭圆曲线数字签名算法—...

    openssl编程

    1.1 对称算法 8 1.2 摘要算法 9 1.3 公钥算法 9 1.4 回调函数 11 第二章 openssl简介 13 2.1 openssl简介 13 2.2 openssl安装 13 2.2.1 linux下的安装 13 2.2.2 windows编译与安装 14 2.3 openssl源代码 14 2.4 ...

    openssl 编程 当前版本

    1.1 对称算法 8 1.2 摘要算法 9 1.3 公钥算法 9 1.4 回调函数 11 第二章 openssl简介 13 2.1 openssl简介 13 2.2 openssl安装 13 2.2.1 linux下的安装 13 2.2.2 windows编译与安装 14 2.3 openssl源代码 14 2.4 ...

Global site tag (gtag.js) - Google Analytics