以往的文件或书信可以通过亲笔签名来证明其真实性,而通过计算机网络传输的信息则可以通过数字签名技术来实现其真实性的验证。
下面就以DSA算法为例,介绍数字签名算法。
DSA算法在1991年被美国国家标准与技术局(NIST)采纳为联邦数字签名标准,NIST称之为数字签名标准(DSS)。
(1)DSA中的参数:全局公钥(p,q,g):p为512~1024bit的大素数,q是(p-1)的素因子,为160比特的素数,g=h(p-1)/qmodp,且1<h1用户私钥x:x为0<x<q内的随机数用户公钥y:y=gxmodp用户为待签消息选取的秘密数k,k是满足0<k<q的随机数或伪随机数。
(2)签名过程用户对消息M的签名为(r,s),其中r≡(gkmodp)modq,s≡[k-1(H(M)+xr)]modq,H(M)是由MD4、MD5或SHA求出的杂凑值。
(3)验证过程设接收方收到的消息为M,签名为(r,s)。
计算:w≡(s)-1modq,u1≡[H(M)w]modqu2≡rwmodq,v≡[(gu1yu2)modp]modq检查v=r′是否成立,若成立,则认为签名有效。
这是因为若(M′,r′,s′)=(M,r,s),则:
2024/1/31 14:58:34 3.62MB C++ DSA
1
全书共分14章,从古典密码学开始,继而介绍了Shannon信息论在密码学中的应用,然后进入现代密码学部分,先后介绍了分组密码的一般原理、数据加密标准(DES)和高级加密标准(AES)、Hash函数和MAC算法、公钥密码算法和数字签名、伪随机数生成器、身份识别方案、密钥分配和密钥协商协议、秘密共享方案,同时也关注了密码应用与实践方面的一些进展,包括公开密钥基础设施、组播安全和版权保护等。
在内容的选择上,全书既突出了广泛性,又注重对要点的深入探讨。
书中每一意后都附有大量的练习题,这既利于读者对书中内容的总结和应用,又是对兴味、思维和智力的挑战。
2023/2/22 6:42:35 22.14MB 密码学 最新版 文字版
1
NISTSP-800-90DRBG伪随机数规范
2016/1/1 6:33:49 1.05MB 随机数 伪随机数 DRBG NIST标准
1
NISTSP-800-90DRBG伪随机数规范
2016/1/1 6:33:49 1.05MB 随机数 伪随机数 DRBG NIST标准
1
《内部排序算法比较》【问题描述】在教科书中,各种内部排序算法的时间复杂度分析结果只给出算法的大致执行时间。
试通过随机数据比较各算法的关键字比较次数和关键字移动次数,以获得直观感受【基本要求】(1)对6种常用内部排序算法进行比较:冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序(2)待排序的表长不小于100,其中数据要用伪随机数产生,至多用5组不同的输入数据做比较(3)比较指标为关键字参加的比较次数和关键字的移动次数
2017/7/4 4:23:16 248KB C++
1
伪随机数量化在基于概率自顺应跳频系统中的应用,杨晓文,申晓红,本文提出了基于误码率的映射和对伪随机数流的量化来产生跳频图案的方法,重点阐明了量化准则,构建了基于概率的自顺应跳频通信仿
2016/8/1 20:33:13 364KB 通信技术
1
1、这是一款支持安卓端文件加解密的软件,里面所使用的SM2算法用于签名验证、SM3算法哈希后用于密钥封装、SM4算法用于短信的加解密,整个软件可以发送加解密短信,只需对方安装了本软件,输入相同的密钥就可以破解加密的内容2、SM3算法生成的伪随机数经过加工可以生成随机汉字用来生成密钥。
2022/9/4 23:46:39 21.27MB Java Android Cipher SM系列
1
真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。
而计算机中的随机函数是按照一定算法模仿产生的,其结果是确定的,是可见的。
我们可以这样认为这个可预见的结果其出现的概率是100%。
所以用计算机随机函数所产生的“随机数”并不随机,是伪随机数。
下面就是用用matlab产生伪随机数
2022/9/4 13:10:29 58KB 伪随机数
1
PB新大陆星POS扫码支付源码,调用C#动态库,简单实现接口,采用POWERBUILDER9.0开发stringls_urlstringls_datastringls_ddstringls_zfqd//【交易类型--传入平台用】ifrb_1.checked=truethen ls_zfqd="WXPAY"endififrb_2.checked=truethen ls_zfqd="ALIPAY"endififrb_3.checked=truethen ls_zfqd="YLPAY"endif//【生成请求地址===从配置参数中维护请求地址的一部分】ls_url=gs_pos_requesturl+"sdkBarcodePay.json"//【判断输入金额能否符合要求】ifdec(em_1.text)<=0.00then messagebox("系统提示【MYSOFT】","所输金额不正确!~r~n请重新输入!") em_1.setfocus() returnendif//【判断商户订单号能否为空】ifsle_4.text=""then messagebox("系统提示【MYSOFT】","订单号不能为空!") returnendif//【判断能否扫描付款码】ifsle_code.text=""then messagebox("系统提示【MYSOFT】","付款码不能为空!") sle_code.setfocus() returnendif//【判断能否扫描付款码】iflen(sle_code.text)=0then messagebox("系统提示【MYSOFT】","请扫描服务对象付款码......") sle_code.setfocus() return-1endif//【判断订单号能否为空】iflen(sle_4.text)=0then messagebox("系统提示【MYSOFT】","订单号不能为空!") sle_4.setfocus() return-1endif//【初始化伪随机数发生器,让应用程序每次运用不同的伪随机数序列。
】randomize(0)//【清除is_keys[]is_value[]】inv_wxpay.of_clear()//====================生成公共请求参数==============================================================//【操作系统:3-直连】inv_wxpay.of_add_pos("opSys","3")//【字符集:00-GBK】inv_wxpay.of_add_pos("characterSet","00")//【机构号,从配置参数维护】inv_wxpay.of_add_pos("orgNo",gs_pos_orgno)//【商户号,从配置参数维护】inv_wxpay.of_add_pos("mercId",gs_pos_mercid)//【设备号,从配置参数维护】inv_wxpay.of_add_pos("trmNo",gs_pos_trmno)//【商户单号,不能重复,若重复则返回:数据库错误】inv_wxpay.of_add_pos("tradeNo",sle_4.text)//【设备端交易时间:yyyymmddhhmmss】inv_wxpay.of_add_pos("txnTime",string(now(),"yyyymmddhhmmss"))//【签名方式:MD5】inv_wxpay.of_add_pos("signType","MD5")//【版本号:默认V1.0.0】inv_wxpay.of_add_pos("version","V1.0.0")//==================生成商户主扫请求参数============================================================//【实付金额:分为单位】inv_wxpay.of_add_pos("amount",string(long(dec(em_1.text)*100)))//【订单总金额:分为单位】inv_wxpay.of_add_pos("total_amount",string(long(dec(em_1.text)*100)))//【扫码支付授权码】inv_wxpay.of_add_pos("authCode"
2015/6/24 6:08:54 11.64MB PB POWERBUILDER
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡