《精通门罗币》第5章-深入探究门罗币与密码学
现代密码学则开始于世界大战时期,用于重要机密信息加密处理。最开始投入研究密码学的都是各国政府与军队,以保护国家机密为主要研究方向。
现在,密码学已不再局限于间谍和军事活动中使用,而是互联网时代通信和安全的支柱,世界各地的学术与行业研究人员都在对密码学进行广泛与深入的研究。
作为现代十分普及的幕后工具,密码学在保密、管理、通信等很多连接层面上改善着我们日常生活。例如:Secure Socket Laye(安全套接层,简称 SSL,一种网络安全协议,不推荐使用 TSL)采用了数据加密签名技术。医院、银行、政府和企业均采用密码学技术保护用户数据。
在本章,我们将主要讨论:加密工具如何应用一个去中心化金融数据库生产出加密数字货币(重点介绍门罗币)。
1. 数学基础
以下先简要介绍/回顾密码学的几个核心数学原理。
1.1 欧几里德除法(A/B)
将任意一个数 A 除以另一个数 B(写为 A/B 或 A÷B)会得到一个结果,该结果既可写为商与余数,也可单独写为小数。
通常:
A/B=q,余数为 r
例:
12/4=3,余数为 0,可写为小数 3.0
13/4=3,余数为 1,可写为小数 3.25
27/5=5,余数为 2,可写为小数 5.4
1.2 质数
质数是只能被“1”和自身整除的整数,例如:
20 不是质数,因为可以被 2、4、5 和 10 整除,得到整数,
例:20 ÷ 4 = 5 或 20 ÷ 10 = 2
7 是质数,因为除了 1 和自身外,除以任何整数均不会得到整数,
例:7 ÷ 3 = 2.3333
其他例子:
质数包括 3,5,7,11,13,97,223,
997,3413,4421,17837,145601,
428567,1171967,甚至更大的数字像
2074722246773485207821695222107
6085874809964747211172927529925
8991219668475054965831008441673
2550077 或者孪生质数
2,996,863,034,895×2^1,290,000±1,
每个质数均超过 350,000 位!
1.3 模算术
模算术描述的是会绕过特定整数的数字。
一个直观的示例为 12 小时制。如果在晚上 11 点以后熬夜 5 个小时,那么,你不会经历下午 16 点!因为在午夜,时间会转而绕到零点(因此晚上 11 点过去 5 个小时后,是第二天早上 4 点)。
给定任意两个正数,A(被除数)和 B(除数),
模数 B=A/B 的余数 r
就时钟而言,晚上 11 点后熬夜 5 小时可表示为:
(晚上 11 点 + 5 小时)mod 12=…
=16:00 mod 12
=4:00(早上)
1.4 整数表示
整数可用许多不同的编码表示,其中一些在计算机科学中经常遇到。
大多数人都非常熟悉 base-10“十进制”数制,该数制用 10 个字符表示数字:0,1,2,3,4,5,6,7,8,9。
对于一个 base-16 集合,“十六进制”编码额外增加了 6 个字符:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f。
以十进制写为 11719682 的整数可以用十六进制表示为 B2D402。请注意,较大的字符集通常需要较少的位数(较短的字符串)来表示相同的数字。
计算机以 base-2“思考”时,只使用字符“0”和“1”。这称为二进制,例如数字11719682(base-10)可表示为
101100101101010000000010。
门罗币以 base-58 打印最终地址和密钥,其中使用阿拉伯数字和大多数拉丁字符集(大写和小写)。base-58 类似于另一个 Base64 方式,但其已经修改,以避免数字和字母在打印时混淆不清。门罗币使用这种格式,目的完全在于方便人们使用,因其经常须人工阅读或转录长地址。
base-58 字母表包括:
123456789ABCDEFGHJKLMNPQRSTU-
VWXYZabcdefghijkmnopqrstuvwxyz
注:该 Base58 字母表不包括零(0)、字母 I(i 的大写)、字母 O(o 的大写)和字母 l(L 的小写),因其彼此间易混淆不清。
1.5 椭圆曲线
1.5.1 概述
椭圆曲线被定义为满足以下等式的一组二维(x,y)点:
例如,在固定系数 a=2 和 b=3 的情况下,该等式变为
这由许多对点来满足,例如:
x=3 和 y=6
x=3 和 y=-6
x=-1 和 y=0
1.5.2 Ed25519 扭曲爱德华兹曲线
门罗币使用特殊的扭曲爱德华兹(Twisted Edwards)椭圆曲线 Ed25519 进行加密操作,该曲线是蒙哥马利曲线 Curve25519 的二元等效物。
ed25519 曲线可以代数形式表示为
-x²+y²=1-(121665/121666)x²y².
回想我们的一般椭圆曲线等式,该扭曲爱德华兹曲线是一个使用以下参数的特例:
a=-1 和 b=121665/121666
中国观察