资源简介
以往的文件或书信可以通过亲笔签名来证明其真实性, 而通过计算机网络传输的信息则可以通过数字签名技术来实现其真实性的验证。
下面就以DSA算法为例,介绍数字签名算法。DSA算法在1991年被美国国家标准与技术局(NIST)采纳为联邦数字签名标准,NIST称之为数字签名标准(DSS)。
(1) DSA中的参数:
全局公钥(p,q,g):
p为512~1024bit的大素数,
q是(p-1)的素因子,为160比特的素数,
g=h(p-1)/q mod p, 且1<h1
用户私钥x:x为0<x<q内的随机数
用户公钥y:y=gx mod p
用户为待签消息选取的秘密数k,k是满足0<k<q的随机数或伪随机数。
(2) 签名过程
用户对消息M的签名为(r, s),其中
r≡(gk mod p) mod q,
s≡[k-1(H(M)+xr)] mod q,
H(M)是由MD4、MD5 或SHA求出的杂凑值。
(3) 验证过程
设接收方收到的消息为M,签名为(r,s)。计算:
w≡(s)-1 mod q,
u1≡[H(M)w] mod q
u2≡r w mod q,
v≡[(gu1yu2) mod p] mod q
检查 v=r′ 是否成立,若成立,则认为签名有效。这是因为若(M′,r′,s′)=(M,r,s),则:
代码片段和文件信息
#include “StdAfx.h“
#include “BigInt.h“
//小素数表
const static int Primetable[550]=
{ 3 5 7 11 13 17 19 23 29 31
37 41 43 47 53 59 61 67 71 73
79 83 89 97 101 103 107 109 113 127
131 137 139 149 151 157 163 167 173 179
181 191 193 197 199 211 223 227 229 233
239 241 251 257 263 269 271 277 281 283
293 307 311 313 317 331 337 347 349 353
359 367 373 379 383 389 397 401 409 419
421 431 433 439 443 449 457 461 463 467
479 487 491 499 503 509 521 523 541 547
557 563 569 571 577 587 593 599 601 607
613 617 619 631 641 643 647 653 659 661
673 677 683 691 701 709 719 727 733 739
743 751 757 761 769 773 787 797 809 811
821 823 827 829 839 853 857 859 863 877
881 883 887 907 911 919 929 937 941 947
953 967 971 977 983 991 997 1009 1013 1019
1021 1031 1033 1039 1049 1051 1061 1063 1069 1087
1091 1093 1097 1103 1109 1117 1123 1129 1151 1153
1163 1171 1181 1187 1193 1201 1213 1217 1223 1229
1231 1237 1249 1259 1277 1279 1283 1289 1291 1297
1301 1303 1307 1319 1321 1327 1361 1367 1373 1381
1399 1409 1423 1427 1429 1433 1439 1447 1451 1453
1459 1471 1481 1483 1487 1489 1493 1499 1511 1523
1531 1543 1549 1553 1559 1567 1571 1579 1583 1597
1601 1607 1609 1613 1619 1621 1627 1637 1657 1663
1667 1669 1693 1697 1699 1709 1721 1723 1733 1741
1747 1753 1759 1777 1783 1787 1789 1801 1811 1823
1831 1847 1861 1867 1871 1873 1877 1879 1889 1901
1907 1913 1931 1933 1949 1951 1973 1979 1987 1993
1997 1999 2003 2011 2017 2027 2029 2039 2053 2063
2069 2081 2083 2087 2089 2099 2111 2113 2129 2131
2137 2141 2143 2153 2161 2179 2203 2207 2213 2221
2237 2239 2243 2251 2267 2269 2273 2281 2287 2293
2297 2309 2311 2333 2339 2341 2347 2351 2357 2371
2377 2381 2383 2389 2393 2399 2411 2417 2423 2437
2441 2447 2459 2467 2473 2477 2503 2521 2531 2539
2543 2549 2551 2557 2579 2591 2593 2609 2617 2621
2633 2647 2657 2659 2663 2671 2677 2683 2687 2689
2693 2699 2707 2711 2713 2719 2729 2731 2741 2749
2753 2767 2777 2789 2791 2797 2801 2803 2819 2833
2837 2843 2851 2857 2861 2879 2887 2897 2903 2909
2917 2927 2939 2953 2957 2963 2969 2971 2999 3001
3011 3019 3023 3037 3041 3049 3061 3067 3079 3083
3089 3109 3119 3121 3137 3163
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 18257 2007-06-15 20:18 dsa\BigInt.cpp
文件 2703 2007-06-15 20:19 dsa\BigInt.h
文件 8316 2007-06-07 23:42 dsa\MD5.CPP
文件 611 2007-06-07 23:42 dsa\MD5.H
文件 3597 2007-06-07 21:06 dsa\ReadMe.txt
文件 1468 2007-06-16 20:39 dsa\Resource.h
文件 4980 2007-06-15 19:13 dsa\SHA1.CPP
文件 1738 2007-06-07 23:42 dsa\SHA1.H
文件 210 2007-06-07 21:06 dsa\StdAfx.cpp
文件 1054 2007-06-07 21:06 dsa\StdAfx.h
文件 22676 2011-05-25 18:47 dsa\数字签名.aps
文件 2219 2011-06-15 15:46 dsa\数字签名.clw
文件 2025 2007-06-10 07:25 dsa\数字签名.cpp
文件 5045 2007-06-11 22:04 dsa\数字签名.dsp
文件 524 2007-06-07 21:06 dsa\数字签名.dsw
文件 1292 2007-06-10 07:24 dsa\数字签名.h
文件 320512 2011-06-15 15:46 dsa\数字签名.ncb
文件 1408 2011-05-25 18:47 dsa\数字签名.plg
文件 7530 2007-06-16 20:39 dsa\数字签名.rc
文件 1818 2007-06-16 20:41 dsa\数字签名Dlg.h
文件 12375 2007-06-13 20:19 dsa\数字签名DlgBK.cpp
文件 13398 2009-06-10 09:26 dsa\数字签名Dlg.cpp
文件 2258 2010-06-03 10:59 dsa\DSA.CPP
文件 377856 2011-06-15 15:45 dsa\Debug\vc60.idb
文件 380928 2011-05-25 18:47 dsa\Debug\vc60.pdb
文件 168010 2011-05-25 18:47 dsa\Debug\数字签名.exe
文件 7235364 2009-06-09 13:16 dsa\Debug\数字签名.pch
文件 517120 2011-05-25 18:47 dsa\Debug\数字签名.pdb
文件 3688 2007-06-16 20:40 dsa\Debug\数字签名.res
文件 1374868 2009-06-09 13:16 dsa\Debug\StdAfx.sbr
............此处省略24个文件信息
- 上一篇:计算机考研复试问题汇总带答案
- 下一篇:MFC 鼠标按下与弹起事件响应
相关资源
- 酒店管理系统源代码C++
- c++prime课后习题答案PDF版
- 非线性滤波
- c++链接数据库用二进制存储图像,并
- VC++6.0小游戏--扫雷源代码
- SNAP7 协议说明书
- 基于C++的网络入侵检测系统源码
- C++考勤管理系统源代码
- CGAL编程指南c++版
- C++操作Access数据库
- 印刷体文字识别VC++源程序及论文
- RC4 C++实现
- VS2019c++装换为动态链接库DLL.doc
- C++程序编写的MFC控件的打地鼠游戏
- VC++ MFC制作数字时钟、图形时钟、秒表
- C++经典教材
- 魂斗罗游戏源码
- 基于vc++6.0的rs232串口通信课程设计
- 超市管理系统c++2
- 舒尔特方格MFC源码
- Qt5 C++ GUI Programming Cookbook pdf 0分
- 《无线通信系统仿真-c++使用模型》源
- VC++ MFC 游戏手柄Joystick 编程
- 基于员工培训管理系统
- C++Templates 侯捷 带书签 pdf
- c++ mfc客户端服务器端文件传输
- C++电梯协调运行自动模拟
- 《C++ GUI Qt 4编程》第二版源代码
- C++超市管理系统程序
- 东北大学C++课程设计实验、代码及实
评论
共有 条评论