0x11 浅谈RSA加密算法的数学原理与编程实现

贝祖等式和编程实现涉及的坑比较深,此外数论背景部分要加上实例说明,待更新。

1 RSA加密算法简介

1.1 RSA算法实现步骤[3]

RSA算法是一种典型的非对称加密算法,本小节将简要介绍RSA算法的实现步骤,对RSA算法原理的分析则留到第3章叙述。RSA算法实现通信的加、解密分为6个步骤,如下:
1)随机找两个质数p和q:
比如 p = 67 ,q = 71p与q越大,越安全。
2)计算p,q的乘积n = p\cdot q = 4757
转化为二进制1001010010101,该加密算法即为13位,实际算法是1024位或2048位,位数越长,算法越难被破解。
3)计算n的欧拉函数 \varphi(n),记为m
欧拉函数的定义见定义2.1.7,根据定理2.2.12及定理2.2.17易知,\varphi(n) = (p-1)\cdot (q-1)
于是有m=\varphi (4757) = 66\cdot 70 = 4620
4)随机选择整数e作为公钥,满足1<e<m,e与m互素:
两整数互素的定义见定义2.1.4,此处,随机选择e = 101
需要注意的是,不能选择e=4619,如果选择这个作为公钥,会使公钥、私钥相同。
5)使用广义欧几里得除法计算e的模反元素d
模反元素的定义详见定义2.1.12,
根据定义2.1.12,有e\cdot d\equiv 1(mod \ m)
根据定义2.1.2 同余的定义以及定义2.1.1 整除的定义,上式等价于:\exists k\in\mathbb{Z},满足ed=km+1\tag{式1.2.1}
式1.2.1中,e=101,m=4620
于是原式变化为,101\cdot d - k\cdot 4620 = 1
于是,对私钥d的求解转化为求上述二元一次不定方程的一组整数特解,使用广义欧几里得除法可以很轻松地做到这一点。广义欧几里得除法将在对定理2.2.5 贝祖等式的证明中详细说明,这里不做过多介绍,仅给出d,k的一个特解:d=1601,k=35
6)将n,e封装成公钥,n,d封装成密钥
在本节实例中,公钥为:(4757,101) 私钥为:(4757,1601)
实际应用中,公钥和私钥的数据都采用ASN.1格式表达。

RSA算法的加密过程如下:
比如甲向乙发送汉字“中”,乙方需先将自己的公钥(n,e) = (4757,101)以明文的形式发送给甲,甲再使用公钥加密汉字 "中", 以 utf-8 方式编码为 [e4 b8 ad],转为 10 进制为 [228,184,173]。要想使用公钥(n,e) = (4757 , 101)加密,要求被加密的数字必须小于 n,被加密的数字必须是整数,字符串可以取 ascii 值或unicode值,因此将“中”字折为三个字节 [228,184,173],分别对三个字节加密。
假设 a 为明文(a < n),b 为密文,则按下列公式计算出 b:b = a^{e} \ mod \ n
于是明文[228,184,173]加密为:228^{101} \ mod \ 4757 = 4296 184^{101} \ mod \ 4757 = 2458 173^{101} \ mod \ 4757 = 3263 即[4296,2458,3263]。

RSA算法的解密过程如下:
乙收到密文,使用自己的私钥(n,d) =(4757,1601)解密,解密公式如下:a = b^{d} \ mod \ n
于是密文[4296,4757,3263]解密为:4296^{1601} \ mod \ 4757 = 228 2458^{1601} \ mod \ 4757 = 184 3263^{1601} \ mod \ 4757 = 173 解密结果为[228,184,173],再按UTF-8字符集解码[228,184,173]得到汉字“中”,完成解密。

1.2 RSA算法可靠性的简要分析[2]

1.2节中的密钥生成步骤中,共出现了6个数字:

p,q,n,m=\varphi(n),e,d

其中,n,e以明文的形式发送,其余p,q,m,d由接收方或着说公私密钥对生成方保存。

现在考虑在已知n,e的情况下,能否推导出d?

1)根据e\cdot d \equiv 1(mod \ m),已知m才能推导出d;
2)m=\varphi(p\cdot q)=(p-1)\cdot (q-1),已知p,q才能推导出m;
3)n = p\cdot q,只有将n因式分解,才能计算出p,q。

结论:如果n可以被因数分解,d就可以算出,也就意味着私钥被破解。

可是,大整数的因数分解,是一件非常困难的事情。目前,除了暴力破解,还没有发现别的有效方法。维基百科这样写道:

"对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。
假如有人找到一种快速因数分解的算法,那么RSA的可靠性就会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA密钥才可能被暴力破解。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。
只要密钥长度足够长,用RSA加密的信息实际上是不能被解破的。"

举例来说,你可以对3233进行因数分解(61×53),但是你没法对下面这个整数进行因数分解。

12301866845301177551304949
58384962720772853569595334
79219732245215172640050726
36575187452021997864693899
56474942774063845925192557
32630345373154826850791702
61221429134616704292143116
02221240479274737794080665
351419597459856902143413

它等于这样两个素数的乘积:

33478071698956898786044169
84821269081770479498371376
85689124313889828837938780
02287614711652531743087737
814467999489
    ×
36746043666799590428244633
79962795263227915816434308
76426760322838157396665112
79233373417143396810270092
798736308917

事实上,这大概是人类已经分解的最大整数了(232个十进制位,768个二进制位),比它更大的因数分解,还没有被报道过,因此目前被破解的最长RSA密钥就是768位。

2 数论背景简介

在介绍RSA算法数学原理之前,需对一些数论中的基本定义、定理作简要介绍。本章节仅尝试使读者对相关定义、定理有一个基本理解,满足能应用的要求即可,对相关定理的详细证明参见第4章“相关数学定理的证明”。此外,本文并不试图构建完整、严谨的数论体系,对涉及到的数论定理的证明,基于本章节的基本定义、以及一些“直觉上很显然的事实”推出。需要系统学习数论相关知识的读者,可以研读如《柯召数论讲义》、《信息安全数学基础》等书籍。

为缩短文章篇幅,对本章节的定义、定理的描述中使用了集合论、布尔代数中的基本数学符号,相关数学符号的定义详见附录A,对于集合论、布尔代数等中学知识,限于篇幅,本文不作赘述。

2.1 基本定义[1]

定义2.1.1 整除

a,b\in \mathbb{Z},b≠0,若\exists q\in \mathbb{Z},满足a = q\cdot b,
则称{\bf b整除a},或者{\bf a被b整除},记作{\bf b\mid a},b称为a的{\bf因数},
a称为b的{\bf倍数};否则,称b不能整除a,记作{\bf b\nmid a}。

定义2.1.2 同余

对给定m\in \mathbb{Z},m>0,若m\mid (a-b),则称a,b模m{\bf同余},
记作{\bf a\equiv b(mod\ m)};否则,称a,b模m{\bf不同余}。

定义2.1.3 素数、合数

n\in\mathbb{Z},n\neq 0,n\neq \pm1,若n除了显然因数\pm1,
\pm n外,没有其他因数,则称n为{\bf素数},一般记作p;否则,称n为{\bf合数}。

定义2.1.4 公因数、最大公因数、互素

a_{1},a_{2},...,a_{n}\in\mathbb{Z},若d\in\mathbb{Z},且满足
d\mid a_{i} (i = 1,2,...,n),则称d为a_{1},a_{2},...,a_{n}的{\bf 公因数};
若a_{1},a_{2},...,a_{n}不全为0,则a_{1},a_{2},...,a_{n}所有公因数中
最大的一个称为a_{1},a_{2},...,a_{n}的{\bf最大公因数},记作{\bf (a_{1},a_{2},...,a_{n})};
特别地,若(a_{1},a_{2},...,a_{n}) = 1,则称a_{1},a_{2},...,a_{n}{\bf 互素}。

定义2.1.5 公倍数、最小公倍数

a_{1},a_{2},...,a_{n}\in\mathbb{Z},若D \in \mathbb{Z},a_{i}\mid
D(i = 1,2,...,n),则称D为a_{1},a_{2},...,a_{n}的{\bf公倍数};
a_{1},a_{2},...,a_{n}的所有公倍数中最小的正整数称为
a_{1},a_{2},...,a_{n}的{\bf最小公倍数},记作{\bf[a_{1},a_{2},...,a_{n}]}。

定义2.1.6 不完全商、余数

定理2.2.4式2.1中,q称为a被b除所得的{\bf不完全商},r称为a被b除所得的{\bf余数}。

定义2.1.7 欧拉(Euler)函数

m \in\mathbb{Z},m>0,则m个整数1,2,...,m-1,m中与m互素的整数个数,记作{\bf\varphi (m)}。

定义2.1.8 剩余、剩余类

定义C_{a}=\{c|c\in\mathbb{Z},c\equiv a(mod \ m) \},C_{a}称为模m的a的{\bf剩余类},
一个剩余类中的任意一个数称为该剩余类的{\bf剩余}。

定义2.1.9 完全剩余系

若r_{0},r_{1}...,r_{m-1}\in\mathbb{Z},且其中任意两个数均不在同一个剩余类里,
则r_{0},r_{1}...,r_{m-1}\in\mathbb{Z}称为{\bf模m的完全剩余系}。

模m的剩余类有m个,即C_{0},C_{1},...,C_{m-1}
它们作为新的元素组成的新的集合,记作\mathbb{Z}/m\mathbb{Z} = \{C_{a}|1\leq a\leq m-1\}
特别地,当m=p为素数时,也记作\mathbb{F}_{p}=\mathbb{Z}/p\mathbb{Z} =\{C_{a}|1\leq a\leq p-1\}
{\bf注1.1.1} ,\mathbb{Z}/m\mathbb{Z}中元素间加法运算定义为C_{a} + C_{b} :=C_{a+b},
由定理2.2.10易证,该元素间加法的定义不依赖于元素的选取。
{\bf注1.1.2}, \mathbb{Z}/m\mathbb{Z}中元素间乘法运算定义为C_{a} \cdot C_{b} :=C_{a\cdot b},
由定理2.2.10易证,该元素间乘法的定义不依赖于元素的选取。

定义2.1.10 简化剩余、简化剩余类

若一个模m的剩余类中的数与m互素,则把它称为{\bf模m的简化剩余类},
简化剩余类中的剩余称为{\bf简化剩余}。

{\bf注1.1.3},易证,简化剩余类的定义与剩余的选取无关。
{\bf注1.1.4},易证,两个简化剩余的乘积仍是简化剩余。

定义2.1.11 简化剩余系

m\in\mathbb{z},m>0,在模m的所有不同的简化剩余类中,从每个类任取一个剩余组成的整数的集合,
称为{\bf模m的简化剩余系}。

模m的简化剩余类的全体所组成的集合记作(\mathbb{Z}/m\mathbb{Z})^{*}=\{C_{a},|0\leq a\leq m-1,(a,m)=1\}
特别地,当m=p为素数时,也记作\mathbb{F}^{*}_{p}=(\mathbb{Z}/p\mathbb{Z})^{*} =\{C_{1},C_{2},...,C_{p-1} \} =\mathbb{F}_{p}/\{C_{0}\}

定义2.1.12 模反元素

对定理2.2.15中的整数a而言,a^{'}为a对模m的模反元素。即,
对a,m\in\mathbb{Z},m>0,(a,m)=1,存在唯一的a^{'}\in\mathbb{Z},
1\leq a^{'}<m,满足a\cdot a^{'}\equiv 1(mod \ m),此时,整数a^{'}称为a对模m的模反元素。

2.2 基本定理

定理2.2.1 整除的传递性

a,b,c\in \mathbb{Z},且a,b,c\neq0,b\mid a,c\mid b
\Longrightarrow c\mid a

定理2.2.2 整系数线性组合

a,b,c\in \mathbb{Z},且a,b,c\neq0,c\mid a,c\mid b
\Longrightarrow 对\forall s,t\in \mathbb{Z},c\mid (s\cdot a + t\cdot b)

定理2.2.3

a,b\in\mathbb{Z},a,b\neq 0,若a\mid b,b\mid a,
\Longrightarrow a = \pm b

定理2.2.4 欧几里得除法

a,b\in\mathbb{Z},b>0,
\Longrightarrow 存在唯一的q,r\in\mathbb{Z},满足
a= q\cdot b + r,0\leq r<b....... (2.1)

定理2.2.5 贝祖(Bezout)等式

a,b\in\mathbb{Z},a,b > 0,
\Longrightarrow\exists s,t\in\mathbb{Z},满足s\cdot a + t\cdot b = (a,b)

定理2.2.6

a,b\in\mathbb{Z},a,b不全为0,d\in\mathbb{Z},d>0,
若d=(a,b)
\Longleftrightarrow (i)d\mid a,d\mid b;(ii)对\forall e\in\mathbb{Z}满足e\mid a,e\mid b,恒有e\mid d。

定理2.2.7

a,b,c\in \mathbb{Z},且b,c\neq0,
若(a,c)=1
\Longrightarrow (ab,c)=(b,c)

定理2.2.8

a_{1},a_{2},...,a_{n}\in\mathbb{Z},若(a_{i},c)=1(1\leq i\leq n)
\Longrightarrow (a_{1}\cdot a_{2}\cdot ...\cdot a_{n},c) = 1

定理2.2.9 同余的性质

对\forall a,m\in\mathbb{Z},m\neq 0,
i)(自反性)\ a \equiv a\ (mod\ m);
ii)(对称性)若a\equiv b(mod\ m),则b\equiv a(mod\ m);
iii)(传递性)若a\equiv b(mod\ m),b\equiv c(mod\ m),则a\equiv c(mod\ m)。

定理2.2.10

m\in\mathbb{Z},m>0,a_{1},a_{2},b_{1},b_{2}\in\mathbb{Z},a_{1}\equiv b_{1},a_{2}\equiv b_{2},则有,
i) a_{1} + a_{2} \equiv b_{1} + b_{2}(mod \ m)
ii) a_{1} \cdot a_{2} \equiv b_{1} \cdot b_{2}(mod\ m)

定理2.2.11

m,a,b,d\in\mathbb{Z},m\neq 0,d\cdot a \equiv d\cdot b(mod\ m),若(d,m) = 1
\Longrightarrow a\equiv b(mod\ m)

定理2.2.12

p为素数,
\Longrightarrow \varphi(p) = p-1

定理2.2.13

m\in\mathbb{Z},r_{1},r_{2},...r_{\varphi (m)}\in\mathbb{Z},
(r_{i},m)=1 (1\leq i\leq \varphi (m)),且对\forall i,j\in (0,\varphi (m)],r_{i}与r_{j}不同余,
\Longrightarrow r_{1},r_{2},...r_{\varphi (m)}为模m的简化剩余系。

定理2.2.14

a,m\in\mathbb{Z},(a,m)=1,若k遍历模m的简化剩余系
\Longrightarrow a\cdot k也遍历模m的简化剩余系。

定理2.2.15

a,m\in\mathbb{Z},m>0,(a,m)=1,
\Longrightarrow 存在唯一的a^{'}\in\mathbb{Z},1\leq a^{'}<m,满足a\cdot a^{'}\equiv 1(mod\ m)

定理2.2.16

m_{1},m_{2}\in\mathbb{Z},m_{1},m_{2}>0,(m_{1},m_{2})=1,若k_{1},k_{2}分别遍历模m_{1},模m_{2}的简化剩余系,
\Longrightarrow m_{2}\cdot k_{1}+m_{2}\cdot k_{1}遍历m_{1}\cdot m_{2}的简化剩余系。

定理2.2.17

m,n\in\mathbb{Z},m,n>0,(m,n)=1,
\varphi (m\cdot n) = \varphi (m)\cdot \varphi(n)。

定理2.2.18 欧拉(Euler)定理

m\in\mathbb{Z},m>1,若a\in\mathbb{Z},(a,m)=1,
\Longrightarrow a^{(\varphi(m))}\equiv 1(mod\ m)

定理2.2.19 费马(Fermat)小定理

p为素数,
\Longrightarrow 对\forall a\in\mathbb{Z},a^{p}\equiv a(mod\ p)

定理2.2.20

a,b,c\in\mathbb{Z},且 a,b,c\neq 0,若a=q\cdot b+c,q\in\mathbb{Z},
\Longleftrightarrow (a,b)=(b,c)

定理2.2.21

m\in\mathbb{Z},对\forall a\in\mathbb{Z},令C_{a}=\{c\mid c\in\mathbb{Z},c\equiv a(mod\ m)\},则:
i)任何整数必然包含在一个C_{r}中,其中0\leq r< m;
ii)C_{a}=C_{b}\Longleftrightarrow a\equiv b(mod \ m);
iii)C_{a}\bigcap C_{b}=\emptyset,\Longleftrightarrow a,b模m不同余。

定理2.2.22

m_{1},m_{2}\in\mathbb{Z},(m_{1},m_{2})=1,
若k_{1},k_{2}分别遍历m_{1},m_{2}的完全剩余系,
则k_{1}\cdot m_{2}+k_{2}\cdot m_{1}遍历m_{1}\cdot m_{2}的完全剩余系。

定理2.2.23

m\in\mathbb{Z},a\equiv b(mod \ m),若d\mid m,则a\equiv b(mod \ d)。

定理2.2.24

a,b,c\in\mathbb{Z},c\neq 0,若c\mid a\cdot b,(a,c)=1,则c\mid b。

定理2.2.25

m\in\mathbb{Z},则m个整数r_{0},r_{1},\cdots ,r_{m-1}为模m的一个完全剩余系 的充分必要条件是r_{0},r_{1},\cdots ,r_{m-1}模m两两不同余。

3 RSA加密算法的数学原理

3.1 RSA加密算法的数学语言描述

将1.2节中对RSA加密过程的描述转化为数学语言:
1)随机选取两个素数p,q,计算n=p\cdot q;
2)计算n的欧拉函数m=\varphi(n);
3)随机选取e\in\mathbb{Z},满足(e,m)=1;
4)计算e模m的模反元素d,即d满足e\cdot d\equiv 1(mod\ m);
5)公钥对为(e,n),私钥对为(d,n);公、私密钥对由接收方负责生成,
接收方生成密钥对后,将公钥对明文发送给发送方,自己保留私钥对,
发送方通过公钥对加密明文,将加密后的密文发送给接收方,接收方接受密
文后使用私钥对解密密文,还原明文;
6)假定需发送的明文为a(需满足a<n),则密文c=a^{e}(mod\ n);
接收方接收到密文c后,计算c^{d}(mod \ n)即可还原出明文a。上述过程
等价于如下命题,a^{e\cdot d}\equiv a(mod\ n),由定理2.2.10易知两者的等价性。

3.2 RSA加密算法证明

对3.1节所描述的数学问题证明如下:
1)若(a,n)=1,
则由定理2.2.18欧拉定理,易知,a^{m}\equiv 1(mod\ n),其中,m=\varphi (n),
由e\cdot d\equiv 1(mod\ m),记e\cdot d=k\cdot m+1(k\in\mathbb{Z}),
\Longrightarrow a^{e\cdot d}=a^{k\cdot m+1}=a\cdot a^{k\cdot m},
由定理2.2.10易知,a\cdot a^{k\cdot m}\equiv a\cdot 1^{k}(mod\ n),即a^{1+k\cdot m}\equiv a(mod\ n),
又e\cdot d=k\cdot m+1,显然有,a^{e\cdot d}\equiv a(mod\ n);
2)
若(a,n)\neq 1,
又a<n,易知a的素因子只能有p或者q,不可能同时有p\cdot q,
这里,不妨设,a=k\cdot p,k\in\mathbb{Z},由上述推理易知,(k,q)=1,
又(p,q)=1,由定理2.2.8可得,(kp,q)=1,
由定理2.2.18欧拉定理可知,(kp)^{q-1}\equiv 1(mod\ q),
又e\cdot d\equiv 1(mod \ m),不妨设e\cdot d =h\cdot m + 1,h\in\mathbb{Z},
根据定理2.2.12及定理2.2.17,m=(p-1)\cdot (q-1),
因此,e\cdot d = h\cdot (p-1)\cdot (q-1)+1,
\Longrightarrow (k\cdot p)^{e\cdot d}=(k\cdot p)^{h\cdot (p-1)\cdot (q-1)+1}=k\cdot p\cdot ((k\cdot p)^{q-1})^{h\cdot (p-1)},
由定理2.2.10易知,k\cdot p\cdot ((k\cdot p)^{q-1})^{h\cdot (p-1)}\equiv k\cdot p\cdot 1^{h\cdot (p-1)}(mod\ q)=k\cdot p(mod\ q),
\Longrightarrow (k\cdot p)^{e\cdot d}\equiv k\cdot p(mod \ q),
不妨设,(kp)^{e\cdot d}=k\cdot p+t^{'}\cdot q,
显然,p|(k\cdot p)^{e\cdot d},由定理2.2.2可知,p|t^{'},
不妨设,t^{'}=s^{'}\cdot p,于是有,a^{e\cdot d}=(k\cdot p)^{e\cdot d}=k\cdot p+s^{'}\cdot p\cdot q=a + s^{'}\cdot n,
\Longrightarrow a^{e\cdot d}\equiv a(mod\ n);
综1)、2),对\forall a\in\mathbb{Z},a<n,a^{e\cdot d}\equiv a(mod\ n),QED。

4 相关数学定理的证明

对2.2节所列数学定理证明如下:

定理2.2.1 整除的传递性

a,b,c\in \mathbb{Z},且a,b,c\neq0,b\mid a,c\mid b
\Longrightarrow c\mid a

证:由于b\mid a,c\mid b,由定义2.1.1可知,
\exists q_{1}\in\mathbb{Z},满足a=q_{1}\cdot b,\tag{4.1}
\exists q_{2}\in\mathbb{Z},满足b=q_{2}\cdot c,\tag{4.2}
综(4.1)、(4.2),a=(q_{1}\cdot q_{2})\cdot c
由定义2.1.1可知,c\mid a,QED。

定理2.2.2 整系数线性组合

a,b,c\in \mathbb{Z},且a,b,c\neq0,c\mid a,c\mid b
\Longrightarrow 对\forall s,t\in \mathbb{Z},c\mid (s\cdot a + t\cdot b)

证:由于c\mid a,c\mid b,由定义2.1.1可知,
\exists q_{1}\in\mathbb{Z},满足a=q_{1}\cdot c,\tag{4.3}
\exists q_{2}\in\mathbb{Z},满足b=q_{2}\cdot c,\tag{4.4}
因此,对\forall s,t\in \mathbb{Z},s\cdot a + t\cdot b=s\cdot q_{1}\cdot c+s\cdot q_{2}\cdot c
\Longrightarrow 对\forall s,t\in \mathbb{Z},s\cdot a + t\cdot b=(s\cdot q_{1}+s\cdot q_{2})\cdot c
由定义2.1.1可知,c\mid (s\cdot a + t\cdot b),QED。

定理2.2.3

a,b\in\mathbb{Z},a,b\neq 0,若a\mid b,b\mid a,
\Longrightarrow a = \pm b

证:由定义2.1.1有,\exists q_{1},q_{2}\in\mathbb{Z},满足b=q_{1}\cdot a,a=q_{2}\cdot b,
\Longrightarrow b=q_{1}\cdot q_{2}\cdot b,
又b\neq 0,故q_{1}\cdot q_{2}=1,
而q_{1},q_{2}\in\mathbb{Z},故q_{1}=q_{2}=\pm 1,
即,a = \pm b,QED。

定理2.2.4 欧几里得除法

a,b\in\mathbb{Z},b>0,
\Longrightarrow 存在唯一的q,r\in\mathbb{Z},满足
a= q\cdot b + r,0\leq r<b....... (2.1)

证:
1)存在性
考虑一个整数数列:...,-2\cdot b,-b,0,b,2\cdot b...
它们把数轴划分成长度为b的区间,
对于数轴上的特定整数a,必然落在其中一个区间中,
即,\exists q\in\mathbb{Z},满足q\cdot b\leq a<(q+1)\cdot b,
令r=a-q\cdot b,于是找到q,r\in\mathbb{Z},满足a=q\cdot b+r;
2)唯一性
假设\exists q_{1},q_{2},r_{1},r_{2},q_{1}\neq q_{2},r_{1}\neq r_{2},r_{1},r_{2}\in[0,b),
满足a=q_{1}\cdot b+r_{1}=q_{2}\cdot b+r_{2},
由于q_{1}\neq q_{2},不妨设,q_{1}>q_{2},
\Longrightarrow b<(q_{1}-q_{2})\cdot b = r_{2}-r_{1},
与假设r_{1},r_{2}\in[0,b)矛盾,
故假设不成立,q_{1}=q_{2},r_{1}=r_{2};
综1)、2),存在性、唯一性均成立,QED。

定理2.2.5 贝祖(Bezout)等式

a,b\in\mathbb{Z},a,b > 0,
\Longrightarrow\exists s,t\in\mathbb{Z},满足s\cdot a + t\cdot b = (a,b)

证:深坑,TBD

定理2.2.6

a,b\in\mathbb{Z},a,b不全为0,d\in\mathbb{Z},d>0,
若d=(a,b)
\Longleftrightarrow (i)d\mid a,d\mid b;(ii)对\forall e\in\mathbb{Z}满足e\mid a,e\mid b,恒有e\mid d。

证:
1)必要性
(i)d\mid a,d\mid b \Longrightarrow d为a,b公因数,
(ii)又对\forall e\in\mathbb{Z}满足e\mid a,e\mid b,恒有e\mid d,d>0,
\Longrightarrow 对\forall e\in\mathbb{Z},e为a,b公因数,恒有e\leq d,
综(1)(2),d=(a,b);
2)充分性
(i)根据定义2.1.4,显然有,d\mid a,d\mid b;
(ii)由定理2.2.5贝祖等式可知,\exists s,t\in\mathbb{Z},满足s\cdot a + s\cdot b =d,
又e\mid a,e\mid b,由定理2.2.2可知,e\mid (s\cdot a+t\cdot b)=d;
综1)、2),QED。

定理2.2.7

a,b,c\in \mathbb{Z},且b,c\neq0,
若(a,c)=1
\Longrightarrow (ab,c)=(b,c)

证:
记d=(ab,c),d^{'}=(b,c),根据定义2.1.4,易知d/d^{'}\in(0,+\infty),
(a,c)=1,根据贝祖等式,\exists s,t\in\mathbb{Z},满足s\cdot a+ t\cdot b =1,
左右同乘b,s\cdot a\cdot b+t\cdot b\cdot b=b,
根据定理2.2.2,d\mid a\cdot b,d\mid b \Longrightarrow d\mid (s\cdot a\cdot b+t\cdot b\cdot b)=b,
由定理2.2.6可知,d\mid b,d\mid c,d^{'}=(b,c),
d\mid d^{'};
同理可证,d^{'}\mid d;
根据定理2.2.3,d^{'}\mid d,d\mid d^{'},d/d^{'}\in(0,+\infty)\Longrightarrow d=^{'}d,QED。

定理2.2.8

a_{1},a_{2},\cdots,a_{n}\in\mathbb{Z},若(a_{i},c)=1(1\leq i\leq n)
\Longrightarrow (a_{1}\cdot a_{2}\cdot \cdots\cdot a_{n},c) = 1

证:
1)n=2时,
命题即定理2.2.7,显然成立;
2)假设,对n\in\mathbb{Z},n>2,在(n-1)时命题成立,即 (a_{1}\cdot a_{2}\cdot \cdots\cdot a_{n-1},c) = 1;
则对于n,已知 (a_{1}\cdot a_{2}\cdot\cdots\cdot a_{n-1},c) = 1,(a_{n},c)=1,
根据定理2.2.7,易得,(a_{1}\cdot a_{2}\cdot\cdots\cdot a_{n},c) = 1;
综1)2),以及数学归纳法,QED。

定理2.2.9 同余的性质

对\forall a,m\in\mathbb{Z},m\neq 0,
i)(自反性)\ a \equiv a\ (mod\ m);
ii)(对称性)若a\equiv b(mod\ m),则b\equiv a(mod\ m);
iii)(传递性)若a\equiv b(mod\ m),b\equiv c(mod\ m),则a\equiv c(mod\ m)。

证:
i)显然,(a-a)=0\cdot m,即m\mid (a-a),
根据定义2.1.1、定义2.1.2,显然a\equiv a(mod\ m),QED;
ii)
根据定义2.1.1、定义2.1.2,a\equiv b(mod\ m)\Longrightarrow \exists q\in\mathbb{Z},满足a= b+q\cdot m,
\Longrightarrow (b-a)=(-q)\cdot m,即m\mid (b-a),
根据定义2.1.2,QED;
iii)
根据定义2.1.1、定义2.1.2,a\equiv b(mod\ m),b\equiv c(mod\ m),
\Longrightarrow \exists q_{1},q_{2},满足a=q_{1}\cdot m+b,b=q_{2}\cdot m+c,
\Longrightarrow (a-c)=(q_{1}+q_{2})\cdot m,
根据定义2.1.1、定义2.1.2,a\equiv c(mod\ m),QED。

定理2.2.10

m\in\mathbb{Z},m>0,a_{1},a_{2},b_{1},b_{2}\in\mathbb{Z},a_{1}\equiv b_{1}(mod \ m),a_{2}\equiv b_{2}(mod \ m),则有,
i) a_{1} + a_{2} \equiv b_{1} + b_{2}(mod \ m)
ii) a_{1} \cdot a_{2} \equiv b_{1} \cdot b_{2}(mod\ m)

证:
a_{1}\equiv b_{1},a_{2}\equiv b_{2},
\Longrightarrow \exists q_{1},q_{2}\in\mathbb{Z},满足a_{1}=b_{1}+q_{1}\cdot m,a_{2}=b_{2}+q_{2}\cdot m,
i)
(a_{1}+a_{2})=(b_{1}+b_{2})+(q_{1}+q_{2})\cdot m,
\Longrightarrow (a_{1}+a_{2})-(b_{1}+b_{2}) = (q_{1}+q_{2})\cdot m,
由定义2.2.2可得,a_{1}+a_{2}\equiv b_{1}+b_{2}(mod\ m),QED;
ii)
a_{1}\cdot a_{2}=b_{1}\cdot b_{2}+(b_{1}\cdot q_{2}+b_{2}\cdot q_{1}+q_{1}\cdot q_{2}\cdot m)\cdot m,
\Longrightarrow a_{1}\cdot a_{2}-b_{1}\cdot b_{2}=(b_{1}\cdot q_{2}+b_{2}\cdot q_{1}+q_{1}\cdot q_{2}\cdot m)\cdot m,
由定义2.2.2可得,a_{1}\cdot a_{2}\equiv b_{1}\cdot b_{2}(mod\ m),QED。

定理2.2.11

m,a,b,d\in\mathbb{Z},m\neq 0,d\cdot a \equiv d\cdot b(mod\ m),若(d,m) = 1
\Longrightarrow a\equiv b(mod\ m)

证:根据定义2.1.2可知,d\cdot a \equiv d\cdot b(mod \ m)\Longrightarrow m\mid d\cdot (a-b),
又(d,m)=1,由定理2.2.7可知,m=(d\cdot (a-b),m)=(a-b,m),
\Longrightarrow m\mid (a-b),由定义2.2.2,QED。

定理2.2.12

p为素数,
\Longrightarrow \varphi(p) = p-1

证:由定义2.1.3、定义2.1.4可知,对\forall p为素数,
(0,p)与p互素的整数有(p-1)个:1,2,3,\cdots,(p-1),
由定义1.1.7欧拉函数可知,\varphi(p)=p-1,QED。

定理2.2.13

m\in\mathbb{Z},r_{1},r_{2},...r_{\varphi (m)}\in\mathbb{Z},
(r_{i},m)=1 (1\leq i\leq \varphi (m)),且对\forall i,j\in (0,\varphi (m)],r_{i}与r_{j}不同余,
\Longrightarrow r_{1},r_{2},...r_{\varphi (m)}为模m的简化剩余系。

证:
根据定理2.2.21及题设条件,
显然\varphi(m)个整数是模m的所有不同简化剩余类的剩余,
即证,r_{1},r_{2},...r_{\varphi (m)}为模m的简化剩余系。

定理2.2.14

a,m\in\mathbb{Z},(a,m)=1,若k遍历模m的简化剩余系 \Longrightarrow a\cdot k也遍历模m的简化剩余系。

证:
记k_{1},k_{2}\cdots,k_{\varphi(m)}为模m的简化剩余系,
显然,(k_{i},m)=1,i\in[1,\varphi(m)],
又(a,m)=1,
故根据定理2.2.8,对a\cdot k_{1},a\cdot k_{2}\cdots,a\cdot k_{\varphi(m)},
有(a\cdot k_{i},m)=1,i\in[1,\varphi(m)],
因此,a\cdot k_{1},a\cdot k_{2}\cdots,a\cdot k_{\varphi(m)}是\varphi(m)个模m的简化剩余类的剩余,
假设我们能证明a\cdot k_{1},a\cdot k_{2}\cdots,a\cdot k_{\varphi(m)}中所有元素两两不同余,
则根据定理2.2.13,可知a\cdot k_{1},a\cdot k_{2}\cdots,a\cdot k_{\varphi(m)}遍历模m的简化剩余系;

以下,用反证法证明a\cdot k_{1},a\cdot k_{2}\cdots,a\cdot k_{\varphi(m)}中所有元素两两不同余:
假设\exists k_{i},k_{j},满足a\cdot k_{i}\equiv a\cdot k_{j}(mod\ m),(a,m)=1,
则根据定理2.2.11,k_{i}\equiv k_{j}(mod\ m),
这与k_{1},k_{2}\cdots,k_{\varphi(m)}为模m的简化剩余系题设矛盾,
故不存在k_{i},k_{j},满足a\cdot k_{i}\equiv a\cdot k_{j}(mod \ m),(a,m)=1;

综上,QED。

定理2.2.15

a,m\in\mathbb{Z},m>0,(a,m)=1,
\Longrightarrow 存在唯一的a^{'}\in\mathbb{Z},1\leq a^{'}<m,满足a\cdot a^{'}\equiv 1(mod\ m)

证:
由于(a,m)=1,根据定理2.2.5贝祖等式,
\exists s,t\in\mathbb{Z},满足s\cdot a+t\cdot m =1,
构造a^{'}=s,
显然,a\cdot a^{'}-1=t\cdot m,
根据定义2.1.2,QED。

定理2.2.16

m_{1},m_{2}\in\mathbb{Z},m_{1},m_{2}>0,(m_{1},m_{2})=1,
若k_{1},k_{2}分别遍历模m_{1},模m_{2}的简化剩余系, \Longrightarrow m_{2}\cdot k_{1}+m_{1}\cdot k_{2}遍历m_{1}\cdot m_{2}的简化剩余系。

证:
(1)首先证明,若k_{1},k_{2}满足(k_{1},m_{1})=1,(k_{2},m_{2})=1,(m_{1},m_{2})=1,
则(m_{2}\cdot k_{1}+m_{1}\cdot k_{2},m_{1}\cdot m_{2})=1:
根据定理2.2.7及定理2.2.20,易知,
1=(k_{2},m_{2})=(k_{2}\cdot m_{1},m_{2})=(k_{2}\cdot m_{1}+k_{1}\cdot m_{2},m_{2}),
同理可证,1=(k_{2}\cdot m_{1}+k_{1}\cdot m_{2},m_{1}),
根据定理2.2.8易知,(k_{2}\cdot m_{1}+k_{1}\cdot m_{2},m_{1}\cdot m_{2})=1;
(2)其次证明,m_{1}\cdot m_{2}的任一简化剩余均可表示为,
m_{2}\cdot k_{1}+m_{1}\cdot k_{2},(k_{1},m_{1})=1,(k_{2},m_{2})=1的形式:
根据定理2.2.22,m_{1}\cdot m_{2}的任一剩余均可表示为m_{2}\cdot k_{1}+m_{1}\cdot k_{2}的形式,
根据定理2.2.7,(k_{1},m_{1})=(k_{1}\cdot m_{2},m_{1})=(m_{2},m_{1})=1,
根据定理2.2.20,(k_{1},m_{1})=(k_{1}\cdot m_{2},m_{1})=(k_{1}\cdot m_{2}+k_{2}\cdot m_{1},m_{1})
故(k_{1}\cdot m_{2}+k_{2}\cdot m_{1},m_{1})=1,
同理可证,(k_{1}\cdot m_{2}+k_{2}\cdot m_{1},m_{2})=1,
根据定理2.2.8,(k_{1}\cdot m_{2}+k_{2}\cdot m_{1},m_{1}\cdot m_{2})=1;

综(1)(2),QED。

定理2.2.17

m,n\in\mathbb{Z},m,n>0,(m,n)=1,
\varphi (m\cdot n) = \varphi (m)\cdot \varphi(n)。

证:
根据定理2.2.16,当k_{1}遍历模m的简化剩余系,共\varphi(m)个整数,
k_{2}遍历模n的简化剩余系,共\varphi(n)个整数时,
m\cdot k_{2}+n\cdot k_{1}遍历模m\cdot n的简化剩余系,显然,其整数个数为\varphi(m)\cdot\varphi(n),
而模m\cdot n的简化剩余系的整数个数又记作\varphi(m\cdot n),
易知,\varphi (m\cdot n) = \varphi (m)\cdot \varphi(n),QED。

定理2.2.18 欧拉(Euler)定理

m\in\mathbb{Z},m>1,若a\in\mathbb{Z},(a,m)=1, \Longrightarrow a^{(\varphi(m))}\equiv 1(mod\ m)

证:
根据定理2.2.14,设r_{1},r_{2},\cdots,r_{\varphi(m)}遍历m的简化剩余系,
\Longrightarrow a\cdot r_{1},a\cdot r_{2},\cdots,a\cdot r_{\varphi(m)}也遍历m的简化剩余系,
\Longrightarrow 根据定理2.2.10(ii),a^{\varphi(m)}\cdot r_{1}\cdot r_{2}\cdots r_{\varphi(m)}\equiv r_{1}\cdot r_{2}\cdots r_{\varphi(m)}(mod \ m),
\Longrightarrow (a^{\varphi(m)}-1)\cdot r_{1}\cdot r_{2}\cdots r_{\varphi(m)}\equiv 0(mod \ m)=0\cdot a^{\varphi(m)}\cdot r_{1}\cdot r_{2}\cdots r_{\varphi(m)}(mod \ m),
又r_{1},r_{2},\cdots,r_{\varphi(m)}遍历m的简化剩余系,故(r_{i},m)=1(i\in[1,\varphi(m)]),
根据定理2.2.8,(r_{1}\cdot r_{2}\cdots r_{\varphi(m)},m)\equiv 1(mod\ m),
根据定理2.2.11,a^{\varphi(m)}-1\equiv 0(mod \ m),
显然,a^{\varphi(m)}\equiv 1(mod \ m),QED。

定理2.2.19 费马(Fermat)小定理

p为素数,
\Longrightarrow 对\forall a\in\mathbb{Z},a^{p}\equiv a(mod\ p)

证:
(1)若p\mid a,则必然有a\equiv 0(mod \ p),
根据定理2.2.10(ii),显然有a^{p} \equiv 0^{p}(mod \ p)=0(mod \ p)
显然,a^{p}\equiv a(mod \ p);

(2)若p\nmid a,则必然有(a,p)=1,
根据定理2.2.18欧拉定理,a^{\varphi(p)}\equiv 1(mod \ p),
根据定理2.2.12,a^{p-1} \equiv 1(mod \ p),
根据定理2.2.9,a\equiv a(mod\ p),
根据定理2.2.10(ii),a\cdot a^{p-1}\equiv a\cdot 1(mod\ p),
即a^{p}\equiv a(mod\ p);

综(1)(2),QED。

定理2.2.20

a,b,c\in\mathbb{Z},且 a,b,c\neq 0,若a=q\cdot b+c,q\in\mathbb{Z},
\Longleftrightarrow (a,b)=(b,c)

证:
记d=(a,b),d^{'}=(b,c),
d\mid (a-q\cdot b)=c,d\mid b,d^{'}=(b,c),
根据定理2.2.6,d\mid d^{'};
同理可证,d^{'}\mid d;
根据定理2.2.3及定义2.1.4,d=d^{'},QED。

定理2.2.21

m\in\mathbb{Z},m\in(0,+\infty),对\forall a\in\mathbb{Z},令C_{a}=\{c\mid c\in\mathbb{Z},c\equiv a(mod\ m)\},则:
i)任何整数必然包含在一个C_{r}中,其中0\leq r< m;
ii)C_{a}=C_{b}\Longleftrightarrow a\equiv b(mod \ m);
iii)C_{a}\bigcap C_{b}=\emptyset,\Longleftrightarrow a,b模m不同余。

证:
i)
根据定理2.2.4欧几里得除法,对\forall s\in\mathbb{Z},\exists q_{0},r_{0}\in\mathbb{Z},满足s=q_{0}\cdot m+r_{0},即s-r_{0}= q_{0}\cdot m,
根据定义2.1.2,显然s\equiv r_{0}(mod \ m),
于是令r=r_{0},恒有s\in C_{r},QED。
ii)
a)充分性
由C_{a}定义即定理2.2.9 \ i)可知,a\in C_{a}=C_{b},故a\equiv b(mod \ m);
b)必要性
对\forall c\in C_{a},由C_a定义可知,c\equiv a(mod\ m),
又a\equiv b(mod \ m),
根据定理2.2.9 \ iii)得,c\equiv b(mod\ m),
故对\forall c\in C_{a},c\in C_{b},
同理可证,对\forall c\in C_{b},c\in C_{a},
故C_a = C_b;

综a)b),QED。
iii)
a)充分性
由于C_{a}\bigcap C_{b}=\emptyset,显然,C_{a}\neq C_{b},
由ii)的逆否命题:C_{a}\neq C_{b}\Longrightarrow a,b模m不同余,
直接推,C_{a}\bigcap C_{b}=\emptyset\Longrightarrow a,b模m不同余。
b)必要性
假设a,b模m不同余,\exists c\in C_a,且c\in C_b,
则c\equiv a(mod \ m),c\equiv b(mod \ m),
根据定理2.2.9 \ iii),a\equiv b(mod \ m),与假设矛盾,
故不存在这样得c,满足c\in C_a,c\in C_b;

综a)b),QED。

定理2.2.22

m_{1},m_{2}\in\mathbb{Z},(m_{1},m_{2})=1,
若k_{1},k_{2}分别遍历m_{1},m_{2}的完全剩余系,
则k_{1}\cdot m_{2}+k_{2}\cdot m_{1}遍历m_{1}\cdot m_{2}的完全剩余系。

证:
k_{1},k_{2}分别遍历m_{1},m_{2}的完全剩余系,显然,k_{1},k_{2}分别包含m_{1},m_{2}个整数,
显然,k_{1}\cdot m_{2}+k_{2}\cdot m_{1}包含m_{1}\cdot m_{2}个整数,
根据定理2.2.25,若能证明k_{1}\cdot m_{2}+k_{2}\cdot m_{1}包含m_{1}\cdot m_{2}个整数两两不同余,
则命题得证,以下用反证法证明该假设:
假设\exists k_{1},k^{'}_{1},k_{2},k^{'}_{2}\in{Z},
满足k_{1},k^{'}_{1}模m_{1}不同余,k_{2},k^{'}_{2}模m_{2}不同余,
k_{1}\cdot m_{2}+k_{2}\cdot m_{1}\equiv k^{'}_{1}\cdot m_{2}+k^{'}_{2}\cdot m_{1}(mod \ m_{1}\cdot m_{2}),
根据定理2.2.23,显然,k_{1}\cdot m_{2}+k_{2}\cdot m_{1}\equiv k^{'}_{1}\cdot m_{2}+k^{'}_{2}\cdot m_{1}(mod\ m_{1}),
又根据定义2.1.2,k_{1}\cdot m_{2}+k_{2}\cdot m_{1}\equiv k_{1}\cdot m_{2}(mod \ m_{1}),
k^{'}_{1}\cdot m_{2}+k^{'}_{2}\cdot m_{1}\equiv k^{'}_{1}\cdot m_{2}(mod \ m_{1}),
根据定理2.2.9\ iii),k_{1}\cdot m_{2}\equiv k^{'}_{1}\cdot m_{2}(mod\ m_{1}),
即m_{1}\mid (k_{1}-k^{'}_{1})\cdot m_{2},
根据定理2.2.24,(m_{1},m_{2})=1,有m_{1}\mid (k_{1}-k^{'}_{1}),即k_{1}\equiv k^{'}_{1}(mod \ m_{1}),
同理可证,k_{2}\equiv k^{'}_{2}(mod \ m_{2}),
这与原假设k_{1},k^{'}_{1}模m_{1}不同余,k_{2},k^{'}_{2}模m_{2}不同余,矛盾;故原假设不成立;

综上,QED。

定理2.2.23

m\in\mathbb{Z},a\equiv b(mod \ m),若d\mid m,则a\equiv b(mod \ d)。

证:
根据定义2.1.2,a\equiv b(mod \ m),故\exists q_{1}\in\mathbb{Z},满足a=b+q_{1}\cdot m,
根据定义2.1.1,d\mid m,故\exists q_{2}\in\mathbb{Z},满足m=q_{2}\cdot d,
综上,a=b+(q_{1}\cdot q_{2})\cdot d,
根据定义2.1.2,易知,a\equiv b(mod \ m),QED。

定理2.2.24

a,b,c\in\mathbb{Z},c\neq 0,若c\mid a\cdot b,(a,c)=1,则c\mid b。

证:
根据定理2.2.6,c\mid a\cdot b,c\mid c,故c\mid (a\cdot b,c),
根据定理2.2.7,c\mid (a\cdot b,c)=(b,c),
根据定义2.1.4,显然,c\mid b,QED。

定理2.2.25

m\in\mathbb{Z},则m个整数r_{0},r_{1},\cdots ,r_{m-1}为模m的一个完全剩余系 的充分必要条件是r_{0},r_{1},\cdots ,r_{m-1}模m两两不同余。

证:

(1)充分性,
根据定理2.2.21\ ii)及定义2.1.9,r_{0},r_{1},\cdots ,r_{m-1}为模m的完全剩余系,
则显然有,r_{0},r_{1},\cdots ,r_{m-1}两两不同余;
(2)必要性,
根据定理2.2.21\ iii),r_{0},r_{1},\cdots ,r_{m-1}两两不同余,
则这m个整数中任意两个整数都不在同一个剩余类里,
根据定义2.1.9,r_{0},r_{1},\cdots ,r_{m-1}为模m的完全剩余系;

综(1)(2),QED。

5 RSA加密算法编程实现

TBD
待填坑XD

附录A 术语与缩写

\mathbb{Z} 整数集
TBD
待填坑XD

附录B 参考文献

[1]《信息安全数学基础》 陈恭亮
[2] 阮一峰:RSA算法原理(二)
[3] somenzz:一文搞懂 RSA 算法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容