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
利用双向循环链表为主要存储结构,每个结点存储一个整形变量,按照中国对于长整数的习惯表示方法,将每四位存储在一个结点的值里面。
上传时间: 2016-07-16
上传用户:2404
使用verilog作为CPU设计语言实现单数据通路五级流水线的CPU。具有32个通用寄存器、一个程序计数器PC、一个标志寄存器FLAG,一个堆栈寄存器STACK。存储器寻址粒度为字节。数据存储以32位字对准。采用32位定长指令格式,采用Load/Store结构,ALU指令采用三地址格式。支持有符号和无符号整数加、减、乘、除运算,并支持浮点数加、减、乘、除四种运算,支持与、或、异或、非4种逻辑运算,支持逻辑左移、逻辑右移、算术右移、循环右移4种移位运算,支持Load/Store操作,支持地址/立即数加载操作,支持无条件转移和为0转移、非0转移、无符号>转移、无符号<转移、有符号>转移、有符号<转移等条件转移。
上传时间: 2013-12-11
上传用户:源弋弋
对于比32位还要大的数进行运算,本程序可以实现大整数运算。
标签: 运算
上传时间: 2013-12-22
上传用户:firstbyte
显示当前采集的10个测量点的路温湿度值: 温度单位是℃,3位整数1位小数 湿度单位是﹪RH,3位整数 整屏同时显示10点的数据,可采用不同的界面和方法
上传时间: 2013-12-15
上传用户:qiao8960
运筹学算法,包括单纯形,整数规划,0-1规划,梯度算法。
上传时间: 2013-12-11
上传用户:佳期如梦
问题描述 设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱,可以实用的各种面值的硬币个数不限。当只用硬币面值T[1],T[2],…,T[i]时,可找出钱数j的最少硬币个数记为C(i,j)。若只用这些硬币面值,找不出钱数j时,记C(i,j)=∞。 编程任务 设计一个动态规划算法,对1≤j≤L,计算出所有的C( n,j )。算法中只允许实用一个长度为L的数组。用L和n作为变量来表示算法的计算时间复杂性 数据输入 由文件input.txt提供输入数据。文件的第1行中有1个正整数n(n<=13),表示有n种硬币可选。接下来的一行是每种硬币的面值。由用户输入待找钱数j。 结果输出 程序运行结束时,将计算出的所需最少硬币个数输出到文件output.txt中。
标签:
上传时间: 2016-07-28
上传用户:yangbo69
我的毕业论文及调研报告:《大模数的Rabin密码保密通信软件》 本文对Rabin密码保密通信软件进行了研究。简单介绍了信息安全技术现状及研究意义,讨论了公钥密码系统和Rabin密码系统及其涉及到的算法,包括大整数的实现、蒙格马利快速幂模运算、Miller-Rabin素性检测法、扩展的欧几里德算法。着重讨论了Rabin密码系统的方案设计以及Winsock通信技术。最后讲解了Rabin密码系统在保密通信中的应用,初步完成了大模数Rabin密码保密通信软件的设计。
上传时间: 2016-07-29
上传用户:zhuoying119
1. 内部排序演示 问题描述 设计一个测试程序比较几种排序算法的关键字比较次数和移动次数以取得直观感受。 基本要求 (1)对起(冒)泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较; (2)待排序的元素的关键字为整数。其中的数据要用伪随机产生程序产生(如10000个),至少用5组不同的输入数据做比较,再使用各种算法对其进行排序,记录其排序时间,再汇总比较; (3)演示程序以人机对话的形式进行。每次测试完毕显示各种比较指标值的列表,用条形图(星号表示)进行表示,以便比较各种排序的优劣。 测试数据 由随机数产生器生成 实现提示 主要工作是设法在已知算法中的适当位置插入对关键字的比较次数和移动次数的计数操作。程序还可以考虑几组数据的典型性,如:正序、逆序和不同程度的乱序。注意采用分块调试的方法。 选作内容 (1)对不同表长进行比较 (2)验证各算法的稳定性
上传时间: 2014-01-03
上传用户:lindor
1. 以单项循环链表存储结构模拟约瑟夫环问题。即编号为1、2、3…、n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向下一个人开始重新从1报数,如此下去,直至所有的人全部出列为止。按出列顺序印出各人编号。 2. 演示程序以用户与计算机的对话方式执行,用户输入相应的数据,输出结果显示在其后。
上传时间: 2013-12-27
上传用户:chenjjer