椭圆曲线的加密算法解析和程序设计—基于python语言

本文深入解析椭圆曲线加密算法,探讨其数学基础,包括射影平面坐标系、椭圆曲线方程及加法运算,并介绍了如何在Python中实现加密和解密。文章还讨论了椭圆曲线在软件注册保护中的应用,强调了其在网络安全中的重要性。
摘要由CSDN通过智能技术生成

摘要

在信息时代来临的今天,信息资源的使用给人类带来了极大的收益,然而,在不断出现的大量的信息泄漏事件中,我们必须面对这一挑战。现在,人们已经养成了通过网络进行数据文件通信的习惯,方便的同时,数据和图片也会受到黑客之类的恶意攻击,造成数据错误、误传、篡改。随着网络密码技术的出现,网络的安全得到了很大的保护,以 DES为基础的对称加密和解密算法 RSA为基础的数字加密技术的出现,使网络的信息安全得到了进一步的发展。在此基础上,提出了一种基于 DES和 RSA的加密和解密算法。三种基于 python的算法,实现了 DES与 RSA的新型混合算法。

关键词:python语言;椭圆曲线;加密算法

Abstract

With the advent of the information society, the use of information resources has brought great benefits to people. However, the occurrence of many information leakage accidents has forced us to face the test of information security. At present, it has become our habit to transmit data files on the Internet for communication. In addition to convenience, some data images are likely to be attacked by hackers and other malicious persecutors during the transmission process, resulting in data mistransmission, mistransmission, and even Content has been modified or intercepted. The birth of network cryptography has greatly ensured the security of network transmission. The birth of data encryption composed of symmetric encryption and decryption algorithm DES and asymmetric encryption algorithm RSA greatly enriched the content of network cryptography and ensured network data transmission. security. The encryption and decryption algorithms in this paper include three implementations. In addition to the basic base64 algorithm call implementation, the focus is on the DES algorithm and the RSA algorithm. Three algorithms are designed based on python , and a new hybrid algorithm of DES  and RSA  is implemented.

Key words: python language; elliptic curve; encryption algorithm

目录

前言

1从平行线谈起

2射影平面坐标系

3椭圆曲线

4椭圆曲线上的加法

5密码学中的椭圆曲线

6椭圆曲线上简单的加密/解密

7椭圆曲线在软件注册保护的应用

参考文献

致谢

前言

与 RSA (Ron Rivest, Adi Shamir, Len Adleman)类似, ECC (椭圆曲线加密编码)也是一种公开的密钥算法。目前,国内对 ECC进行了详尽的研究(我还没有发现)。有几个简单的介绍,但都是粗略的介绍,我还是没能完全理解 ECC的精髓(或许是我的悟性不高)。几天前我在国外的网站上看到了一些资料,读了之后,对 ECC的了解也不多。所以,我想将自己对 ECC的理解整理出来,和你们一起分享。当然, ECC博大精深,我对 ECC的理解还很浅薄,其中肯定有很多错误,请各位专家指点,我会认真聆听,并改正。我会把这篇文章做成一篇连载,我会把它写得更好一些。本文的重点放在了理论上,并没有涉及到代码的实现。这需要你的数学基础。如果你能了解 RSA的运算法则,并且知道它的公钥运算法则。像《近世代数基础》、《初等数论》这样的书籍,你最好先看一遍,这样有助于你更好地了解这篇文章。不要害怕,我会尽力使语言变得平易近人,希望这篇文章可以作为学习英语口语的一块踏脚石。人工智能、大数据、云计算等技术已进入人们的日常生活,为人们的日常生活提供了极大的方便。而 Python是"解释型"的语言,它具有很好的易读性和简单的语法,它可以引导学生走进编程领域。算法是软件的灵魂,没有它,就无法进行编程。通过对计算机编程的基本步骤和方法的介绍,有助于使学生了解计算机编程的中心位置。本文从 Python的实际问题入手,对算法和编程的策略进行了分析。

Python是初中信息技术课程的重要组成部分,也是一个很大的难题。通过对三个教师的授课,作者发现在一些问题上有一些问题。精英化与大众化化的差异;一名是一名高级信息学的奥赛导师,她的授课风格和“信息竞赛”差不多,但经过这段时间的学习,她发现信息学的精英化教学并不适用于 Python。因为参与竞赛的同学均为优秀生,学习能力极强;但是目前,作为一种普及的义务教育教科书,学生的素质和能力参差不齐,因此,精英式的教学方式明显不适应 Python的流行。第二,教科书式教学与教科书教学的不同;一名新来的教师,没有教过电脑语言,一上来就是死记硬背,让学生们一头雾水,根据学生的反映,编程并不“有趣”,也不“有用”。只需要输入老师的代码,然后输出结果,就会停止思考和学习,这对学生的思维能力没有任何的影响。因此,教科书的处理很重要。

1从平行线谈起

  两条平行的直线,永远都不会交叉。但是现在,这种说法却受到了挑战。平行的线条是否会在遥远的距离上交叉?事实上,谁也没有见过。因此,“平行线,永远不会相交”,这只是一个假定(你们可以想象一下,我们中学时学过的平行公理,并没有被证明)。既然可以假定两条平行的直线永远不会交叉,那么就可以假定它们是在遥远的距离上交叉的。也就是,两条平行的直线在 P∞的方向交叉(闭上你们的眼睛,想象一下 P∞无限远点, P∞会不会太梦幻了,事实上,这并不是数学训练人的脑力,而是训练人的想象力)。用图表来了解:

 

  当 P∞点出现在一条直线上时,它的优点就是,所有的直线都是相交的。这样,直线的平行线和交叉是一体的。为了区分无限远点,将原始平面上的点称为普通点。

这里有一些关于无限点的特性。

▲在 L上,仅有一个无限远点。(可以从定义中得到)

▲两个平面上的一系列互相平行的直线都有一个共同的无限远点。(可以从定义中得到)

▲在一个平面上,任意两条线相交,L2都有不同的无限远点。(如果L1与L2有一个共同的无限点 P,那么L1与L2有两个交点 A, P,所以假定是不正确的。)

所有的无限点组成了一条无限的直线。(你可以想象这条线)

▲所有的无限远点和所有普通点组成了一个投影平面。

2射影平面坐标系

  射影平面坐标系统是对一般平面的直角坐标系统的一种扩充。我们知道,在一般的平面直角坐标系统中,没有为无限远点设计座标,也不能代表无限远点。射影平面坐标系统是用来代表无限远点的,当然,它也可以用来描述古老的普通点(在数学上也是“向下兼容”)。

  在一般平面的直角座标系中, A的座标(x、 y)作以下修改:

  令x=X/Z ,y=Y/Z(Z≠0);则A点可以表示为(X:Y:Z)。

  在此基础上,得到了一个具有三个参数的坐标系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值