一、攻击/安全威胁
1. Sybil Attack(女巫攻击)
- 在对等网络中,节点通常具有多个身份标识,通过控制系统的大部分节点来消弱冗余备份的作用。
- 在P2P网络中,因为节点随时加入退出等原因,为了维持网络稳定,同一份数据通常需要备份到多个分布式节点上,这就是数据冗余机制。女巫攻击是攻击数据冗余机制的一种有效手段。
2. Kerckhoffs原理
- 即使除密钥外的整个系统的一切都是公开的,这个密码体制也必须是安全的。尤其是即使攻击者知道系统的加密算法和解密算法,此系统也必须是安全的。
二、密码算法
1. 哈希算法
加密哈希算法 Cryptographic Hash Algorithms(例如MD5, SHA-1)
感知哈希算法 Perceptual Hash Algorithm
- aHash:平均值哈希。速度比较快,但是常常不太精确
- pHash:感知哈希。精确度比较高,但是速度方面较差一些
- dHash:差异值哈希。精确度较高,且速度也非常快
汉明距离 Hamming distance
- 在信息论中,两个等长字符串之间的汉明距离(英语:Hamming distance)是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。
- 汉明重量是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是1的个数,所以11101的汉明重量是4。
2. 椭圆曲线加密ECC
椭圆曲线离散对数问题
(elliptic curve discrete logarithm problem ECDLP) 远难于离散对数问题 (discrete logarithm problem) ,椭圆曲线密码系统的单位比特强度要远高于传统的离散对数系统。因此在使用较短的密钥的情况下,ECC(elliptic curve discrete) 可以达到于DL系统相同的安全级别。这带来的好处就是计算参数更小,密钥更短,运算速度更快,签名也更加短小。因此椭圆曲线密码尤其适用于处理能力、存储空间、带宽及功耗受限的场合。
椭圆曲线
(1)定义
- 一条椭圆曲线是在射影平面上满足威尔斯特拉斯方程(Weierstrass) 所有点的集合
(2)形式
Y 2 Z + a 1 X Y Z + a 3 Y Z 2 = X 3 + a 2 X 2 Z + a 4 X Z 2 + a 6 Z 3 Y^2Z+a_1XYZ+a_3YZ^2=X^3+a_2X^2Z+a_4XZ^2+a_6Z^3 Y2Z+a1XYZ+a3YZ2=X3+a2X2Z+a4XZ2+a6Z3
(3)特点
- 椭圆曲线方程是一个齐次方程
- 曲线上的每个点都必须是非奇异的(光滑的),偏导数 F x ( x , y , z ) F_x(x,y,z) Fx(x,y,z)、 F y ( x , y , z ) F_y(x,y,z) Fy(x,y,z)、 F z ( x , y , z ) F_z(x,y,z) Fz(x,y,z)不同时为 0 0 0
- 圆曲线的形状,并不是椭圆的。只是因为椭圆曲线的描述方程,类似于计算一个椭圆周长的方程故得名
(4)一般方程
y 2 = x 3 + a x + b ; 4 a 3 + 27 b 2 ≠ 0 y^2=x^3+ax+b;4a^3+27b^2 \ne 0 y2=x3+ax+b;4a3+27b2=0
(5)椭圆曲线示例
(6)非椭圆曲线示例
3. 椭圆曲线阿贝尔群
椭圆曲线加法运算:
给定点A和点B,C’点为AB延长线与曲线的交点,做其对称点C,那么A+B=C
计算A+A,做A的切线与曲线上B相交,B的对称点C即为A+A结果,A+A=C
交换群(阿贝尔群)性质
在数学中,群是一种代数结构,由一个集合以及一个二元运算所组成。已知集合和运算(G,*) 如果是群则必须满足如下要求:
- 封闭性: ∀ a , b ∈ G , a ∗ b ∈ G ∀a,b∈G,a*b ∈ G ∀a,b∈G,a∗b∈G
- 结合性: ∀ a , b , c ∈ G , 有 ( a ∗ b ) ∗ c = a ∗ ( b ∗ c ) ∀a,b,c∈G ,有 (a*b)* c = a* (b*c) ∀a,b,c∈G,有(a∗b)∗c=a∗(b∗c)
- 单位元: ョ e ∈ G , ∀ a ∈ G , 有 e ∗ a = a ∗ e = a ョe∈G,∀a ∈G,有e*a = a*e = a ョe∈G,∀a∈G,有e∗a=a∗e=a
- 逆元: ∀ a ∈ G , ョ a − 1 ∀a ∈G , ョa^{-1} ∀a∈G,ョa−1使得 a ∗ a − 1 = a − 1 ∗ a = e a*a^{-1} = a^{-1}*a = e a∗a−1=a