一文读懂椭圆曲线加密学

  • 时间:
  • 浏览:0

声明:本文来自于微信公众号蓝狐笔记(ID:lanhubiji ),授权站长之家转载发布。

前言:本文是关于椭圆曲线加密的非常基础的介绍。内容真是基础,但对于椭圆曲线加密的门外汉来说,简单易懂,适合于初学者。本文作者Lane Wager,来源于medium,由“蓝狐笔记”公众号社群的“王泽龙”翻译。

这是一篇椭圆曲线密码学的基本介绍。我假设本文的绝大多数读者来这里的目的是:了解为那先 椭圆曲线加密是某种有效的加密工具,以及它为那先 有效。我试图用通俗的妙招 来解释它,我将跳过论证与实现的细节,转而聚焦在其运行原则上。

椭圆曲线示例

它是做那先 的?

椭圆曲线加密是某种加密数据妙招 ,没人特定人,不能对其进行解密。它在现实生活包含其他应用场景,但其主要应用在于加密互联网上的数据与流量。这种,椭圆加密曲线能否 用于确保一封邮件几时发送,且除了收件人外无人能否 读取该邮件。

椭圆曲线加密是公钥加密技术

公钥加密风情万千,椭圆曲线加密本来其中某种风味。其他加密算法还有RSA,DiffieHelman,等等。我将简单交代公钥加密的大体背景作为开头,进而展开大伙儿儿后续的阐述,以此更深入理解椭圆曲线加密。有空时,我就花些时间深入研究公钥密码学知识。

如下图所示,公钥加密允许以下过程存在:

http://itlaw.wikia.com/wiki/Key_pair

上图展示了有俩个多钥匙,有俩个多公钥和有俩个多私钥。那先 密钥用于加密和解密数据,这使得世界上的任何人都能否 在传输时都看加密数据,但无法读取信息。

让大伙儿儿假设Fcebook将收到来自特朗普的私密贴。Facebook需用不能确保特朗普通过网络发文时,没人 (包括N S A或互联网服务供应商)可在其中阅读该消息。使用公钥加密后,整个数据传输过程呈现如下情況:

l 特朗普告知Facebook他将向后者发送一篇私密帖

l Facebook将其公钥发送给特朗普

l 特朗普使用公钥加密其帖子:

“我喜爱福克斯(Fox)与大伙儿儿们”+公钥=“s50s1s9sadjds9s”

l 特朗普只把加密后的信息发送给Facebook

l Facebook使用大伙儿儿的私钥解密消息:

“s50s1s9sadjds9s” +公钥=“我喜爱福克斯(Fox)与大伙儿儿们”

如你所见,这是一项非常有用的技术。以下是其中的其他要点:

l 公钥可发送给任何人,它是公开的

l 私钥需用被妥善保管,机会机会某人获取了私钥,大伙儿儿便能否 解密信息

l 计算机能否 好快地用公钥来加密消息,并用私钥来解密消息

l 机会没人 私钥,计算机机会需大慨极长的时间(数百万年)来破解加密后的消息

它是何如运作的:陷门函数

所有公钥加密算法的关键在于它们各自 都在 其独特的陷门函数。陷门函数没人被单向计算,机会大慨没人容易地单向计算(使用现代计算机在没人几百万年的时间内)

都在 陷门函数:A+B=C

机会被给到A与B,我就能否 算出C。什么的问题是机会我被给到B与C,我也能否 算出A。暂且是陷门函数。

陷门函数:

“我喜爱福克斯(Fox)与大伙儿儿们”+公钥=“s50s1s9sadjds9s”

机会我被给到“我喜爱福克斯(Fox)与大伙儿儿们”+公钥,我就得出“s50s1s9sadjds9s”,而且机会我被给到“s50s1s9sadjds9s”与公钥,从前无法得出信息:“我爱福克斯(Fox)与大伙儿儿们”。

在RSA(机会是最流行的公钥系统)中,陷门函数主要取决于将大数字纳入其主要因子的难度。

公钥:944,871,836,856,449,473

私钥:961,748,941 and 982,451,653

在以上的例子中,公钥是有俩个多非常大的数字,私钥是公钥的有俩个多主要因子。这是陷门函数的有俩个多好的例子,机会在私钥中很容易将多个数字相乘以获取公钥,但机会你拥有的本来公钥,那将花费一台电脑很长的时间不能重建私钥。

注意:在真实的加密中,私钥需用50+位数以上的长度以确保安全。

那先 椭圆曲线加密与众不同

大伙儿儿使用椭圆曲线加密的理由跟RSA完全相同。它生成公私钥对并允许两方安全沟通。然而,椭圆曲线加密有一胜过RSA的优势。椭圆曲线加密中 256 位数的密钥所提供的安全性与RSA算法中 5072 位数密钥所提供的安全性相同。这原因分析分析分析在资源有限的系统中,如智能手机、嵌入式电脑、加密网络,椭圆曲线加密相较于RSA加密算法,它使用的硬盘空间和下行速率 没人RSA算法的10%。(蓝狐笔记译注:也本来说,椭圆曲线加密比RSA算法在资源有限的情況下,更省资源,可行性更高。)

椭圆曲线加密陷门函数

这机会是绝大多数读者阅读本文的原因分析分析分析。这是椭圆曲线加密有别于RSA加密算法的次责,也是它的特殊之处。陷门函数这种于池中的数学游戏。大伙儿儿从曲线上的某其他开使了了。大伙儿儿使用有俩个多“点函数”(dot function)来发现有俩个多新的点。不断重复“点函数”并围绕曲线跳跃(hop),直到大伙儿儿最终抵达最后有俩个多点上。让大伙儿儿看看以下整个算法。

https://arstechnica.com/information-technology/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/2/

l 从A点开使了了;

l A 点 B=-C(从A到B点画一根绳子 绳子 线并最终落在-C点)

l 从-C到C跨X轴反射;

l A 点 C=-D(从A点向C点画一根绳子 绳子 线并最终落在-D)

l 从-D到D跨X轴反射;

l A 点 D=-E(从A向D画一根绳子 绳子 线并最终落在-E)

l 从-E到E跨X轴反射

这是有俩个多伟大的陷门函数,机会机会你知道哪里是起点(A)以及需用哪几条跳不能达到终点E,没人 找到终点会很容易。从各自 面来说,机会你知道的本来起点与终点的位置,没人 ,要发现需用哪几条跳不能抵达终点几乎是不机会的。

公钥:起点A,终点E;

私钥:从A到E的跳数

什么的问题?

以下是我初次了解椭圆曲线加密时所产生的相关什么的问题。希望我就妥善地处理它们。

何如发现第二点?机会点函数(dot function)本来在两点间画一根绳子 绳子 线难道要第二点来帮助开使了几时?

回答:不需用。第二点(大伙儿儿将其称为下图中的-R点)实际上是P点函数P(让大伙儿儿假设第有俩个多点被称为P)

P点函数P=-R

没人 ,那先 是P点函数P?它实际上本来P的切线。请看以下图片:

https://devcentral.f5.com/articles/real-cryptography-has-curves-making-the-case-for-ecc-20832

机会点函数产生一根绳子 绳子 线路会走到某个极端,会存在那先 ?

机会线没人 抵达靠近原点的曲线,大伙儿儿实际上能否 定义有俩个多最大X值,其中线将回绕并从头开使了了。

我理解了暗门函数,但实践中公私钥是何如创建的?它们是何如与要加密的数据一起去使用的?

这是有俩个多好什么的问题,但它要求更深入的答案。在这篇文章中我给出了关于RSA与椭圆曲线加密较为通俗的解释。然而,还有更多技术资源,我期望你去研究它们。