当前位置: 首页 > news >正文

phpcms 怎么做视频网站酷玛网站建设

phpcms 怎么做视频网站,酷玛网站建设,阳谷聊城做网站,做一个微信商城小程序多少钱实验九 RSA签名算法- 一、实验目的 通过实验掌握GMP开源软件的用法#xff0c;理解RSA数字签名算法#xff0c;学会RSA数字签名算法程序设计#xff0c;提高一般数字签名算法的设计能力。 二、实验要求 (1)基于GMP开源软件#xff0c;实现RSA签名算法。 (2)要求有对应…实验九 RSA签名算法- 一、实验目的 通过实验掌握GMP开源软件的用法理解RSA数字签名算法学会RSA数字签名算法程序设计提高一般数字签名算法的设计能力。 二、实验要求 (1)基于GMP开源软件实现RSA签名算法。 (2)要求有对应的程序调试记录和验证记录。 三、实验内容 1.密钥生成算法 这一步骤将为每个用户生成公钥和相应私钥执行如下操作: (1) 产生两个不同的大素数p和q。 (2)计算npq和φ(p-1)(q-1)。 (3)选择一个随机数e(1eq),满足ged(e,p)1。 (4)使用扩展欧几里得算法计算d(1dq)使得ed l(modp)。 (5)那么用户得公钥为(n,e),私钥为d。 2.签名生成算法 假设用户A对消息m∈M签名执行操作如下: (1)存在一个函数R(* ),将消息m映射为范围[0,n-1]的一个数m即mR(m)。 (2)计算sm“modn。 (3)A对消息m的签名为s。 (4)恢复消息mR~(m)。 四、算法实现 RSA签名算法可以分为三个部分:生成密钥、签名和解签名。关键函数 生成满足gcd(e,p)1的随机数e(1eφ):实现该功能的函数为void e_ gen(mpz_ _t e, mpz_ t fn),第一个参数e为函数的输出。函数过程为:设立flag1,然后在while循环内部使用void random_ num(mpz_ .t ran_num, mpz_ t m, mpz_ .t n)函数产生在[2, φ-1]的随机数字e接着求该数字e与φ(n)的最大公约数判断该最大公约数是否等于1。如果等于1,则flag0, while循环结束;否则继续做循环。循环结束即输出满足需求的随机数e(1eφ)。函数的实现代码如下: 1.密钥生成算法 #include iostream #include cmath// 函数声明 int gcd(int a, int b); int modInverse(int a, int m);int main() {// 步骤1: 产生两个不同的大素数p和qint p 61; // 替换为实际生成的素数int q 53; // 替换为实际生成的素数// 步骤2: 计算npq和φ(p-1)(q-1)int n p * q;int phi (p - 1) * (q - 1);// 步骤3: 选择一个随机数e(1eφ)满足gcd(e, φ) 1int e 17; // 替换为实际选择的e// 步骤4: 使用扩展欧几里得算法计算d(1dφ)使得(ed ≡ 1 (mod φ))int d modInverse(e, phi);// 输出公钥和私钥std::cout 公钥 (n, e): ( n , e ) std::endl;std::cout 私钥 d: d std::endl;return 0; }// 辅助函数: 计算最大公约数 int gcd(int a, int b) {if (b 0)return a;return gcd(b, a % b); }// 辅助函数: 计算模反元素 int modInverse(int a, int m) {for (int x 1; x m; x) {if ((a * x) % m 1) {return x;}}return -1; // 如果不存在模反元素 }2.签名生成算法 #include iostream #include cmath// 函数声明 int modPow(int base, int exponent, int modulus);int main() {// 用户A对消息m签名int m 42; // 替换为实际的消息// 步骤1: 将消息m映射为范围[0, n-1]的数int n 3233; // 替换为实际的nm m % n;// 步骤2: 计算s m^e mod nint e 17; // 替换为实际的eint s modPow(m, e, n);// 步骤3: A对消息m的签名为sstd::cout 用户A对消息m的签名为: s std::endl;return 0; }// 辅助函数: 计算模幂运算 int modPow(int base, int exponent, int modulus) {int result 1;base base % modulus;while (exponent 0) {if (exponent % 2 1)result (result * base) % modulus;exponent exponent 1;base (base * base) % modulus;}return result; }五、实验心得 密钥生成是整个RSA系统的基础。通过选择两个不同的大素数计算出n和φ再选择合适的e和使用扩展欧几里得算法计算d最终得到公钥和私钥。这个过程中对数论知识的理解是至关重要的尤其是关于素数和模运算的概念。 签名生成算法涉及到对消息的映射、模幂运算等步骤。通过将消息映射到指定范围然后使用指定的指数进行模幂运算得到消息的签名。这一过程实际上是数字签名的核心确保了消息的完整性和真实性。
http://www.yutouwan.com/news/49340/

相关文章:

  • 做素食香料哪个网站买甘肃建设局网站首页
  • 平湖企业网站建设怎么做一个个人网站
  • 莆田 网站建设做网站要先申请域名吗
  • 四川住房城乡和城乡建设厅网站黄冈论坛百度贴吧
  • 郑州公路建设有限公司网站长沙互联网公司招聘
  • 江阴企业网站建设哪家好网站建设基础功能
  • 个人网站的设计流程上海中小企业服务平台
  • wordpress中文插件南阳网站优化排名
  • 电子商务网站设计原理书籍做外单网站有哪些内容
  • 网站治做啊app图书馆网站建设需求方案
  • 昆明做公司网站wordpress主题一键生成
  • 私人订制网站设计效果专业乐云seo
  • 做网站苏州深圳百度推广seo公司
  • 类似情侣空间的网站开发免费ppt模板软件
  • 企业网站网页设计费用长沙seo霜天博客
  • 竞价网站做婚庆的网站有哪些内容
  • 网站的网站建设企业做区块链在哪个网站
  • 专门做图表的网站做自媒体的网站名字
  • 网站搭建哪家公司最好石家庄房产网新楼盘在售楼盘
  • 菏泽 网站建设网页设计期末大作业
  • 大连比较好的建站公司php网站后台页面
  • 怎么把别人网站源码弄出来设计公司股权分配方案
  • dede网站301怎么做wordpress设置非管理员
  • 网站论坛模板下载学校网站建设分工
  • 网站后台管理系统怎么开发如何看网站排名
  • 网站开发和桌面开发哪个难中国网络技术有限公司
  • 网站开发模式框架太原seo报价
  • 查询网站服务商网站建好了 如何推广
  • 网站建设公司怎么写宣传语宣城有木有专业做网站的
  • 公司网站的具体的建设方案网络整合营销策划书