DSA数字签名含C语言实例

DSA数字签名

1994年12月美国国家标准和技术研究所(NIST,National
Institute of Standard and Technology)正式颁布了数字签名标
准DSS(Digital Signature Standard),它是在ElGamal和Schorr
数字签名方案的基础上设计的。DSS最初建议使用p为512比
特的素数,q为160比特的素数,后来在众多的批评下,NIST
将DSS的密钥p从原来的512比特增加到介于512比特到1024比
特之间。当p选为512比特的素数时,ElGamal签名的长度为
1024比特,而DSS中通过160比特的素数q可将签名的长度降
低为320比特,这就大大地减少了存储空间和传输带宽。由于
DSS具有较大的兼容性和适用性,因此DSS将得到广泛的应用。
数字签名标准DSS中的算法常称为DSA(Digital Signature
Algorithm)。

DSA数字签名算法(初始化)

在这里插入图片描述

DSA数字签名算法(签名)

在这里插入图片描述

DSA数字签名算法(验证)

在这里插入图片描述

DSA数字签名算法(正确性)

在这里插入图片描述

DSA数字签名算法(举例)

在这里插入图片描述

C语言实例

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int xy[22];

int myPow(int a, int b, int m) {
   
    int res = 1;
    a %= m;
    while (b != 0) {
   
    if ((b & 1) == 1)
    	res = (res * a) % m;
        a 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值