主页 > imtoken官网app下载 > 比特币源码研究一:比特币密码学中的椭圆曲线加密原理

比特币源码研究一:比特币密码学中的椭圆曲线加密原理

imtoken官网app下载 2023-03-06 07:21:01

比特币交易网站源码(比特币交易所php源码)

雨后彩虹2023-01-18 13:1460

比特币交易系统源码_sitehzd.com 比特币交易网币币交易_火币网如何交易比特币

点击下载

欧易汇

金融投资

欧易交易所,又称欧易OKX,是全球领先的数字资产交易所。 主要为全球用户提供比特币、莱特币、以太坊等数字资产现货及衍生品交易服务。 通过使用区块链技术为全球交易者提供先进的金融服务。 这是一个非常老牌的数字货币交易平台。 平台为我们提供安全、专业的数字货币交易体验比特币交易系统源码,并为新手提供完善的流程指导,让您轻松上手。 同时,还有24小时在线客服为您解答疑惑,为您提供最优质的服务。

今天给大家分享比特币交易网站源码的知识,同时也会讲解比特币交易所的php源码。 如果正好解决了你现在面临的问题,别忘了关注本站,我们现在就开始吧!

本文内容列表:

比特币源码研究一:比特币密码学中的椭圆曲线加密原理

参加比特币源码学习班后第一次写。 看到了黑前辈写的钥匙和地址。 我选择了他没有写的椭圆曲线,大胆的写了这篇文章。

密码学中有两种加密方式,即对称密钥加密和非对称密钥加密。

对称加密:加密和解密使用同一个密钥。

非对称加密:加密和解密使用不同的密钥。

二战期间,图灵破解德国恩尼格玛密码应该是采用的对称加密,因为他的加密和解密是同一个密钥。 比特币的加密是非对称加密,采用椭圆曲线加密,很难破解,简称ECC。

非对称加密的一般原理是利用一个难以求解的数学问题来达到加密的效果,比如RSA加密算法。 RSA加密算法是利用求解一个非常大整数的因数这一难题来达到加密效果的。 也就是说,两个极大的数相乘很容易得到乘积,但反过来计算两个极大的整数的乘积就非常困难了。

下面简单介绍一下椭圆曲线加密算法ECC。

首先,椭圆曲线的一般公式如下所示:

一般简化成这样:

() 吐槽贴公式太麻烦了。 )

这样做排除了有奇点的椭圆曲线,可以理解为对所有点都有切线。

有几种类型的图像,这里有一些:[1]

事实上,椭圆曲线与椭圆关系不大,而且与圆锥曲线不同,它们是基于圆锥体的物理模型。 在计算椭圆曲线的周长时,需要椭圆积分,椭圆曲线的简化通式:

,周长公式的一项经过变换后是这样的: ,两者经过平方后基本相同。

对椭圆曲线有了大概的了解之后,我们就会有一个疑问,这个东西是怎么加密的呢? 也就是说,椭圆曲线是基于什么样的数学问题? 在此之前,你得知道一些最起码的必要知识:椭圆曲线加法,离散椭圆曲线。

椭圆曲线加法

数学家们从普通的代数运算中抽象出加法群(也称阿贝尔群或交换群),使得在加法群中统一了实数和椭圆曲线的算法。

数学中的“群”是我们定义为二元运算的集合,我们称之为“加法”,用符号“+”表示。 为了使集合 G 成为群,必须定义加法运算并具有以下四个性质:

1. 闭包:如果a和b是集合G中的元素,则(a+b)也是集合G中的元素。

2、结合律:(a+b)+c=a+(b+c);

3. 存在一个单位元 0 使得 a + 0 = 0 + a = a;

4. 每个元素都有一个逆元素,即对于任意a,存在b使得a + b = 0。

如果我们添加第 5 个条件:

5.交换律:a + b = b + a

那么,这个群就叫做阿贝尔群。 [1]

算法:任意取椭圆曲线上两点P、Q(若两点P、Q重合,则与P点作切线)与椭圆曲线上另一点R'相交,作平行线通过R'到y轴提交给R。我们规定P+Q=R。 (如图)[2]

特别地,当P和Q重合时,P+Q=P+P=2P,对于三个共线点,P,Q,R'有P+Q+R'=0∞。

这里的0∞不是实数意义上的0,而是指无穷远点(这里的无穷远点就不细说了,可以理解这个点很远,远到两个平行线相交于此。具体介绍见参考文献[2])。

注意这里R和R'的区别,P+Q=R,R和P,Q不共线,但是R'和P,Q共线,别搞错了。

细则:

这里的+不是实数中的普通加法,而是从普通加法中抽象出来的加法。 它具有普通加法的一些性质,但具体算法与普通加法明显不同。

根据该定律可知,椭圆曲线的无穷远点O∞与椭圆曲线上一点P的连线交于P',以P'为y轴的平行线交于于P,所以有无穷大点O∞+P=P。这样,无穷远点O∞的函数就等同于普通加法中零的函数(0+2=2),我们称该点在无穷大 O∞ 处为零元素。 同时,我们称P'为P的负元(简称负P;记为-P)。 (见下图)

离散椭圆曲线

上面给出的漂亮椭圆曲线是实数域中的连续曲线。 这不能用于加密。 原因我没有仔细研究过,但肯定是连续曲线上的计算太简单了。 用于加密的真实椭圆曲线是离散的。 如果你想有一个离散的椭圆曲线,你必须首先有一个有限域。

域:在抽象代数中,域(Field)是一种可以进行加、减、乘、除运算的代数结构。 它是从对普通实数的运算中抽象出来的。 这与阿贝尔群非常相似。 只是更多的乘法,和乘法相关的分配率。

域具有以下属性 [3]:

1.对加法和乘法封闭,即两个数在该域中相加或相乘的结果也在该域中。

2. 加法和乘法遵循结合律、汇率和分配率。

3、有加法单元,也可称为零元。 即存在一个元素0,对于有限域中的所有元素a比特币交易系统源码,a+0=a。

4.有乘法单位,也可称为恒等元。 即存在一个元素1,对于有限域中的所有元素a,1*a=a。

5.存在加法逆元,即对于有限域中的所有元素a,存在a+(-a)=0。

6、存在乘法逆元,即对于有限域中的所有元素a,存在a*=0。

有了这些知识,我们就可以离散化椭圆曲线。 我们给出一个只有有限元的有限域 Fp。 Fp中只有p(p为质数)个元素0,1,2...p-2,p-1;

Fp的加法(a+b)规则为a+b≡c (mod p); 表示同余,即(a+b)÷p的余数与c÷p的余数相同。

Fp的乘法(a×b)规则是a×b≡c(mod p);

Fp的除法(a÷b)规则为a/b≡c(mod p); 即a×b∧-1≡c(mod p); (也是0到p-1之间的整数,但满足b×b∧-1≡1(mod p);

Fp的单位元素为1,零元素为0(这里的0不是无穷远点,而是实数0)。

接下来我们尝试把

这条曲线定义在 Fp 上:

选取两个小于p(p为质数)且满足下列条件的非负整数a和b,a和b满足

那么所有满足下式的点(x,y),连同无穷大点O∞,就构成了一条椭圆曲线。

其中,x和y为0到p-1之间的整数,这条椭圆曲线记为Ep(a,b)。

图片是我手绘的,请看一下。 不得不说,当p为7的时候,虽然只有10个点,但是计算量还是很大的。

Fp上的椭圆曲线也有加法,规则如下:

1.无穷远点O∞为零元,O∞+O∞=O∞,O∞+P=P

2. P(x,y)的负元素是(x,-y),所以P+(-P)= O∞

3. P(x1,y1)、Q(x2,y2)和R(x3,y3)有如下关系:

x3≡-x1-x2(mod p)

y3≡k(x1-x3)-y1(mod p)

其中,若P=Q则k=(3+a)/2y1 若P≠Q则k=(y2-y1)/(x2-x1)

通过这些规则,可以进行离散椭圆曲线的计算。

例:根据我画的图,在(1, 1)中点P(2, 4),求2P。

解法:将点代入公式k=(3*x∧2+a)/2y1

有 (3*2∧2+1)/2*4=6 (mod 7)。

(注意,有的朋友可能会计算13/8,这是错误的,这里是模数计算,就像时钟一样,12点后回到1点,所以在模数为7的世界里,13 =6 , 8=1).

x=6*6-2-2=4(模 7)

y=6*(2-4)-4=2(模 7)

所以2P的坐标是(2, 4)

那么椭圆曲线有什么问题呢? 当模足够大时,上述计算过程的逆运算就足够困难了。

给定以下等式:

K=kG(其中K、G为Ep(a,b)上的点,k为小于n的整数(n为点G的阶数))不难发现,给定k和G,根据加法规则,计算 K 很容易; 但给定 K 和 G,求 k 相对困难。

这是椭圆曲线加密算法的问题。 我们称 G 点为基点,k 为私钥,K 为公钥。

我们现在描述使用椭圆曲线 [2] 进行加密通信的过程:

1. 用户A选择一条椭圆曲线Ep(a,b),取椭圆曲线上的一点作为基点G。

2. 用户A选择私钥k,生成公钥K=kG。

3. 用户A发送Ep(a,b)并指向K和G给用户B。

4、用户B收到信息后,将要传输的明文编码到Ep(a,b)上的一个点M(编码方式有很多种,这里不再赘述),生成一个随机整数r(rn) .

5、用户B计算点C1=M+rK; C2=rG。

6. 用户 B 将 C1 和 C2 发送给用户 A。

7、用户A收到信息后计算C1-kC2,结果为M点。因为

C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M

然后对点M进行解码得到明文。

整个过程如下图所示:

在密码学中,为了描述 Fp 上的椭圆曲线,常用六个参数:

T=(p,a,b,G,n,h),p,a,b用于确定一条椭圆曲线,G为基点,n为点G的阶数,h为所有点的个数椭圆曲线上的点 m 除以 n 的整数部分

这些参数值的选择直接影响加密的安全性。 参数值一般要求满足以下条件:

1、当然p越大越安全,但是越大计算速度越慢,200位左右可以满足一般的安全要求;

2. p≠n×h;

3. pt≠1 (mod n), 1≤t20;

4. 4a3+27b2≠0(模p);

5、n为素数;

6、h≤4。

一个200位的数字,它有多大? 而且还是质数,所以这种方法是很安全的。 而在另一笔交易中,该区块只记录了10分钟,也就是说问题必须在10分钟内解决。 即使有技术可以在10分钟内破解目前高难度的加密算法,比特币社区也可以反制,增加破解难度。 因此,比特币交易是非常安全的,除非丢失了密钥,否则没有被破解的可能。

这是我第一次写一个完全陌生的数学领域。 可能是我说错了,也可能是我没解释清楚。 欢迎留言讨论。 总之,写完后,对Bitby系统的安全性感到很放心。

参考

[1] 椭圆曲线密码学简介

[2] 什么是椭圆曲线密码术(ECC)

[3] 领域(数学)维基百科

区块链研究院源码学习班 高若翔

比特币交易网站源码(比特币交易所php源码)-第1张图片-腾赚网

什么是数字货币开源代码

你说的是加密数字货币,源代码可以在开源网站上找到。 也可以到比特币基金会官网查看比特币的源代码。

网络虚拟货币大致可以分为

第一类就是大家熟悉的游戏币。 在单机游戏时代,主角通过打败敌人、在赌馆赢钱等方式积累货币,并用这些来购买药草和装备,但只能在自己的游戏机上使用。 那时,球员之间没有“市场”。 自从互联网上门户网站和社区的建立,以及游戏网络化的实现,虚拟货币有了“金融市场”,游戏币可以在玩家之间进行交易。

第二类是门户网站或即时通讯工具服务商发行的专用货币,用于购买本网站服务。 使用最广泛的是腾讯的Q币,可以用来购买会员、QQ秀等增值服务。

第三类互联网虚拟货币,如比特币(BTC)、富元币(FTC)、莱特币(LTC)等。比特币是一种由开源P2P软件生成的电子货币。 直译为“比特黄金”,是一种网络虚拟货币。主要用于互联网金融投资,也可以作为一种新型货币直接用于日常生活

一个朋友拿到了比特币,让我注册一个账户,用我的支付宝收款,然后把钱转给他。 违法有什么坏处吗?

比特币是非法的,涉及非法集资。 投资虚拟货币更多是一种投机行为。 投资者应增强风险防范意识和识别能力。 在未确认对方身份的情况下,不要涉及金钱交易,不要轻信低风险、高回报的投资产品,尤其不要随意加入未经证实的投资理财群,这些往往都是被骗者精心设计的陷阱电信和网络诈骗犯。

投资比特币听起来不是很多钱。 殊不知,这背后很可能是诈骗团伙精心设计的圈套。 日前,宁海市宁海区检察院提起公诉后,宁海区法院对一起电信网络诈骗案宣判。 三名男子因设置比特币骗局被判获利15万余元。

2018 年 4 月初,刘、陈和毛三人一起策划了一项比特币交易业务。 刘某先是通过互联网购买了网站的源代码,然后托人打造了“Btc Club”平台,架设了服务器。 同时,制作广告发布在微信公众号等自媒体上,吸引受害人。

比特币交易网站源码和比特币交易所php源码介绍到此结束。 你找到你需要的信息了吗? 如果你想了解更多这方面的信息,记得收藏并关注本站。

比特币交易系统源码_sitehzd.com 比特币交易网币币交易_火币网如何交易比特币

点击下载

欧易汇

金融投资

欧易交易所,又称欧易OKX,是全球领先的数字资产交易所。 主要为全球用户提供比特币、莱特币、以太坊等数字资产现货及衍生品交易服务。 通过使用区块链技术为全球交易者提供先进的金融服务。 这是一个非常老牌的数字货币交易平台。 平台为我们提供安全、专业的数字货币交易体验,并为新手提供完善的流程指导,让您轻松上手。 同时,还有24小时在线客服为您解答疑惑,为您提供最优质的服务。