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

【密码学——基础理论与应用】李子臣编著 第八章 SM2公钥密码算法 课后习题

免责声明

这里都是自己搓或者手写的。
里面不少题目感觉有问题或者我的理解有偏颇,请大佬批评指正!
不带思考抄作业的请自动退出,我的并非全对,仅仅提供思维!

题目



逐题解析

知识前提:模运算的分数怎么转整数?

我知道这一点是卡死很多人的点,但是实际上老师根本就不会讲这个细节,我也不指望他们能理解为什么在这里能卡住学生。但是这里确实,懂得就懂,不懂的其实有人指点一下也能秒懂,但是不懂的也没找到怎么懂的,就一直卡死在这里,形成恶性闭环。(以上均为对大学教学问题本身的虾鸡扒扯的胡话,我实在是忍不了我那个密码学老头)

例1:模为p,形如 \frac{a}{b} 的分数,且满足a<p,b<p,怎么转整数?

我们知道 \frac{a}{b}=a*b^{-1},而在模p的运算下,b^(-1)并不是“b分之一”,而是一个在[0,p)范围内的整数。这个整数设为x,那么满足 b*x \equiv 1 \ (mod \ p),我们解出这个x(不管是暴力还是扩展欧几里得算法,解出来就对了)。

所以, \frac{a}{b} \equiv a*x (mod p)

例2:模为p,形如 \frac{a}{b} 的分数,但是a,b至少有一个大于p,怎么转整数?

这一点其实很好回答。那我问你,比如p=11,a=13,b=14。13%p=2,14%p=3,那么我们转成求2/3就可以了。现在你肯定要问:为什么?

我们先把分母遮掉,就假设分母的逆是x。那你总知道13*x=2*x+11*x吧!结果对11取余那不就变成2*x啦?分母也是一样的,14的逆元就(不妨设为y)是2的逆元,因为 14*y \equiv 2*y \equiv 1(mod\ p)

例3:如果a或者b有一个小于0,那么怎么办?

直接默认a小于0,那么a转正就行了。比如-2/3 mod 11=(-2+11)/3 mod 11。原理和例2完全一致。

8.1

8.2

输出结果:(0, 0), (0, 1), (0, 18), (2, 7), (2, 12), (5, 6), (5, 13), (7, 3), (7, 16), (9, 6), (9, 13), (10, 2), (10, 17), (13, 8), (13, 11), (14, 2), (14, 17), (15, 3), (15, 16), (16, 3), (16, 16)。

def findsolution(p,a,b):s=[]cnt=0for i in range(p):z=i*i*i+a*i+bif 1==pow(z,(p-1)//2,p):y1=pow(z,(p+1)//4,p)s.append((i,y1))cnt+=1y2=p-y1if y1!=y2:s.append((i,y2))cnt+=1s.append((0, 0))cnt+=1s.sort()return s,cnt# print(findsolution(11,1,6))训练
print(findsolution(19,1,1))

8.3

笔者不会。

8.4

笔者不会。

8.5

笔者不会。

8.6

http://www.xdnf.cn/news/176887.html

相关文章:

  • LeetCode3☞无重复字符的最长子串
  • 辞九门回忆
  • 深入理解编程中的同步与异步:原理、区别及实战应用
  • Go 语言中的 `select` 语句详解
  • CSS元素动画篇:基于当前位置的变换动画(四)
  • 加密算法 AES、RSA、MD5、SM2 的对比分析与案例(AI)
  • (七)RestAPI 毛子(Http 缓存/乐观锁/Polly/Rate limiting)
  • 【学习笔记1】一站式大语言模型微调框架LLaMA-Factory
  • Vue2 与 Vue3 深度对比与技术解析
  • 黑马点评redis改 part 6
  • 一周学会Pandas2 Python数据处理与分析-Pandas2数据信息查看操作
  • 语音识别质量的跟踪
  • 力扣HOT100之链表:23. 合并 K 个升序链表
  • 树状数组单点操作+前缀K差分->区间K操作 -#131-#132
  • SpringBoot + SSE 实时异步流式推送
  • Linux内核中的编译时安全防护:以网络协议栈控制块校验为例
  • mAh 与 Wh:电量单位的深度解析
  • 【Pandas】pandas DataFrame rtruediv
  • 全网直播推介会,九识智能与申通快递达成全面战略合作
  • 20.压敏电阻的特性与使用注意事项
  • RuoYi-Vue项目Docker镜像构建、推送与部署完整流程
  • 云平台+MQTT+C#上位机+单片机通信
  • 在 UniApp 中实现 App 与 H5 页面的跳转及通信
  • lightrag : from lightrag.utils import EmbeddingFunc 报错
  • 04.通过OpenAPI-Swagger规范让Dify玩转Agent
  • 【Redis】set类型
  • JavaEE-多线程实战02
  • AI如何重塑CC防护行业?五大变革与实战策略解析
  • 【创新实训个人博客】multi-agent调研(2)
  • promis(resolve,reject)入门级别