Ea(1, 1): y2=x3+x+l (mod 23),设P=(3,10),Q=(9,7),求-P,P+Q,2P。

时间: 2023-09-14 18:03:02 浏览: 47
首先,我们需要将椭圆曲线转化为加法群上的形式。根据定义,一个椭圆曲线上的点加上另一个点等于连接这两个点的线和椭圆曲线的交点关于x轴的对称点。具体实现时,可以根据两个点的位置关系分类讨论,这里不再赘述。 根据题意,椭圆曲线为 y^2 = x^3 + x + 1 (mod 23),点P为 (3, 10),点Q为 (9, 7)。我们将椭圆曲线转化为加法群上的形式,可以得到: - P + P = 2P - P + Q - -P 现在我们逐个求解: 1. 求 2P 首先求出斜率 k = (3x1^2 + 1) / (2y1) = (3*3^2 + 1) / (2*10) = 5 (mod 23)。然后用斜率公式计算 P + P: x3 = k^2 - 2x1 = 5^2 - 2*3 = 16 (mod 23) y3 = k(x1 - x3) - y1 = 5(3 - 16) - 10 = 3 (mod 23) 所以 2P = (16, 3)。 2. 求 P + Q 首先求出斜率 k = (y2 - y1) / (x2 - x1) = (7 - 10) / (9 - 3) = 22 (mod 23)。然后用斜率公式计算 P + Q: x3 = k^2 - x1 - x2 = 22^2 - 3 - 9 = 10 (mod 23) y3 = k(x1 - x3) - y1 = 22(3 - 10) - 10 = 20 (mod 23) 所以 P + Q = (10, 20)。 3. 求 -P 由于点的加法是满足交换律的,因此 -P 等于 P 关于x轴的对称点,即 (3, -10)。

相关推荐

请帮我标注代码的注释 void KeyDown(void) { GPIO_KEY=0x0f; if(GPIO_KEY!=0x0f) { Delay10ms(); if(GPIO_KEY!=0x0f) { keycondition=1; GPIO_KEY=0X0F; switch(GPIO_KEY) { case(0X07): keycode=0;break; case(0X0b): keycode=1;break; case(0X0d): keycode=2;break; case(0X0e): keycode=3;break; } GPIO_KEY=0XF0; Delay10ms(); switch(GPIO_KEY) { case(0X70): keycode=keycode;break; case(0Xb0): keycode=keycode+4;break; case(0Xd0): keycode=keycode+8;break; case(0Xe0): keycode=keycode+12;break; } fengminqi(20); while(GPIO_KEY!=0xf0); } } } void Display() { DisplayData[7]=seg_code[teamA/10%10]; DisplayData[6]=seg_code[teamA%10]; DisplayData[1]=seg_code[teamB/10%10]; DisplayData[0]=seg_code[teamB%10]; DisplayData[5]=seg_code[min/10%10]; DisplayData[4]=seg_code[min%10]|0x80; DisplayData[3]=seg_code[sec/10%10]|0x80; DisplayData[2]=seg_code[sec%10]; } void Delay10ms(void) { unsigned char a,b,c; for(c=1;c>0;c--) for(b=38;b>0;b--) for(a=130;a>0;a--); } void main(void) { TMOD=0X12; TH0=0X9C; TL0=0X9C; ET0=1; EA=1; TR0=1; TH1 = 0x0D8; TL1 = 0x0F0; ET1 = 1; TR1 = 1; while(1) { KeyDown(); if((keycondition==1)) { if(keycode==0) { teamA=teamA+1; if(teamA>99) teamA=99; } if(keycode==1) { teamA=teamA+2; if(teamA>99) teamA=99; } if(keycode==2) { teamA=teamA+3; if(teamA>99) teamA=99; } if(keycode==3) { teamA=0; fengminqi(40); } if(keycode==4) { teamB=teamB+1; if(teamB>99) teamB=99; } if(keycode==5) { teamB=teamB+2; if(teamB>99) teamB=99; } if(keycode==6) { teamB=teamB+3; if(teamB>99) teamB=99; } if(keycode==7) { teamB=0; fengminqi(40); } if(keycode==12) { daoshu=1; } if(keycode==13) { daoshu=0; } if(keycode==15) { daoshu=0; min=10; sec=0; } keycondition=0; } Display(); } }

-- Logs begin at Thu 2023-07-13 00:44:15 CST, end at Thu 2023-07-13 00:53:06 CST. -- Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f systemd[1]: Starting Docker Application Container Engine... Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: time="2023-07-13T00:48:25.388440905+08:00" level=info msg="Starting up" Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: time="2023-07-13T00:48:25.405370737+08:00" level=error msg="failed to mount overlay: invalid argument" storage-driver=overlay2 Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: time="2023-07-13T00:48:25.408339784+08:00" level=info msg="Loading containers: start." Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: time="2023-07-13T00:48:25.409506558+08:00" level=warning msg="Running modprobe bridge br_netfilter failed with message: , error: exit status 1" Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: time="2023-07-13T00:48:25.411850508+08:00" level=info msg="unable to detect if iptables supports xlock: 'iptables --wait -L -n': iptables v1.4.21: can't initialize iptables table filter': Permission denied (you must be root)\nPerhaps iptables or your kernel needs to be upgraded." error="exit status 3" Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: time="2023-07-13T00:48:25.425371913+08:00" level=info msg="stopping event stream following graceful shutdown" error="<nil>" module=libcontainerd namespace=moby Jul 13 00:48:25 pod-64788377f624725f6ea4b9e8-64aed85ec2dbab11bceeb07f dockerd[215]: failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables -t nat -N DOCKER: iptables v1.4.21: can't initialize iptables table nat': Permission denied (you must be root)

最新推荐

recommend-type

5g通信模块 SIM8200EA_M2引脚说明文档_V1.00(1).pdf

SIMCom 5g通信模块,搭载NR调制解调器,提供M.2和LGA两种封装方式,支持3G/4G/5G多模,并同时支持5GNR-sub-6GHZ 世联芯科技提供SIM8200EA_M2引脚说明文档
recommend-type

grpcio-1.47.0-cp310-cp310-linux_armv7l.whl

Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB取整函数与Web开发的作用:round、fix、floor、ceil在Web开发中的应用

![MATLAB取整函数与Web开发的作用:round、fix、floor、ceil在Web开发中的应用](https://img-blog.csdnimg.cn/2020050917173284.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2thbmdqaWVsZWFybmluZw==,size_16,color_FFFFFF,t_70) # 1. MATLAB取整函数概述** MATLAB取整函数是一组强大的工具,用于对数值进行
recommend-type

我想做python的算法工程师,我应该学什么?学习的顺序是什么?网上有什么推荐的免费课程吗?回答具体精确一点不要太笼统

对于想要成为 Python 算法工程师的人来说,他们应该先从掌握 Python 的基础语法开始,然后学习数据结构和算法,并且要深入了解 Python 中的一些科学计算和数据处理库,比如 NumPy、Pandas 等。 学习的顺序可以是先学习基础语法和编程技巧,然后再学习数据结构和算法相关的知识,最后深入了解数据处理和科学计算相关的库。 对于免费课程的推荐,我建议你可以先去 Coursera、edX、Udacity 等网站上寻找相关课程,这些网站上有很多优质的 Python 编程和算法课程,你可以根据自己的需求和学习进度进行选择。此外,还可以考虑一些在线编程网站,如 HackerRank、L
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

MATLAB取整函数与数据分析的应用:round、fix、floor、ceil在数据分析中的应用

![MATLAB取整函数与数据分析的应用:round、fix、floor、ceil在数据分析中的应用](https://img-blog.csdnimg.cn/img_convert/a12c695f8b68033fc45008ede036b653.png) # 1. MATLAB取整函数概述 MATLAB提供了一系列取整函数,用于对数值进行四舍五入或截断操作。这些函数包括: - `round`:四舍五入到最接近的整数 - `floor`:向下取整到最小的整数 - `ceil`:向上取整到最大的整数 - `fix`:截断小数部分,返回整数部分 这些函数在数据分析、可视化和特定领域(如金融
recommend-type

r语言如何调用split函数按照factor分开后得到的dataframe

可以使用如下语句: split_dataframe <- split(original_dataframe, original_dataframe$factor_column) 其中,original_dataframe为待拆分的原始数据框,$factor_column为按照哪一列分组(即因子列),split_dataframe为拆分后得到的数据框列表。