初等数论 课堂笔记 第三章 -- 保密通讯与公开密钥

本文介绍了保密通讯的基础原理,包括仿射密码、指数密码和RSA公开密钥体制。通过实例详细解析了加密和解密过程,并展示了如何通过数学方法求解密钥,确保信息安全传输。
摘要由CSDN通过智能技术生成

保密通讯

  保密通讯分为3步:

  1. 发送方使用密钥明码转换成密码
  2. 密码的传输;
  3. 接收方使用解钥密码转换成明码

  在公开密钥体制中,密钥和加密程序是公开的解钥不公开,仅信息接收方知道。
  第三方若要破解收到的密码,首先要得到或者破解解钥。

仿射密码

概述
  以明码为英语字母为例,将字母按照下表转化为数字 x x x(明码的等价表示),通过
x ↦ ( a x + b     m o d   26 )   : = y x\mapsto \left( ax+b\text{ }\bmod 26 \right)\text{ }:=y x(ax+b mod26) :=y
加密成密码( a , b ∈ Z a,b\in \mathbb{Z} a,bZ未知, gcd ⁡ ( a , 26 ) = 1 \gcd \left( a,26 \right)=1 gcd(a,26)=1),再通过
y ↦ ( a 11 ( y − b )     m o d   26 ) = x y\mapsto ({ {a}^{11}}\left( y-b \right)\text{ }\bmod 26)=x y(a11(yb) mod26)=x
解密出数字(明码),最后将数字按下表转换回字母。
0 1 2 3 4 5 6 7 8 9 10 11 12 A B C D E F G H I J K L M 13 14 15 16 17 18 19 20 21 22 23 24 25 N O P Q R S T U V W X Y Z \begin{matrix} 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\ A & B & C & D & E & F & G & H & I & J & K & L & M \\ 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 & 25 \\ N & O & P & Q & R & S & T & U & V & W & X & Y & Z \\ \end{matrix} 0A13N1B14O2C15P3D16Q4E17R5F18S6G19T7H20U8I21V9J22W10K23X11L24Y12M25Z

  1. a x + b     m o d   26 ax+b\text{ }\bmod 26 ax+b mod26表示取 a x + b ax+b ax+b模掉(除以)26后剩下的余数 d d d, d ∈ Z ≥ 0 ,   0 ≤ d ≤ 25 d\in { {\mathbb{Z}}_{\ge 0}},\text{ }0\le d\le 25 dZ0, 0d25
  2. 要求 gcd ⁡ ( a , 26 ) = 1 \gcd \left( a,26 \right)=1 gcd(a,26)=1,是因为 A , B , ⋯   , Y , Z A,B,\cdots ,Y,Z A,B,,Y,Z对应的数字 0 , 1 , ⋯   , 24 , 25 0,1,\cdots ,24,25 0,1,,24,25构成模 26 26 26的完全剩余系 K K K。设 x x x通过 K K K,当 gcd ⁡ ( a , 26 ) = 1 \gcd \left( a,26 \right)=1 gcd(a,26)=1时, a x + b ax+b ax+b (即 y y y) 也才通过模 26 26 26的完全剩余系 a K + b aK+b aK+b
    1. 此时也才成立 x x x a x + b  mod26 ax+b\text{ mod26} ax+b mod26的单射关系,而不至于两个不同的明码加密成同一个密码。
    2. gcd ⁡ ( a , 26 ) = 1   ⇒  gcd ( a 11 , 26 ) = 1 \gcd \left( a,26 \right)=1\text{ }\Rightarrow \text{ gcd}\left( { {a}^{11}},26 \right)=1 gcd(a,26)=1  gcd(a11,26)=1,也就有 y y y a 11 ( y − b ) = a 11 y − a 11 b     m o d   26 { {a}^{11}}\left( y-b \right)={ {a}^{11}}y-{ {a}^{11}}b\text{ }\bmod 26 a11(yb)=a11ya11b mod26的单射关系,不至于两个不同的密码解密出同一个明码。

概括

  1. 密钥: a , b ∈ Z ,   gcd ⁡ ( a , 26 ) = 1 a,b\in \mathbb{Z},\text{ }\gcd \left( a,26 \right)=1 a,bZ, gcd(a,26)=1
  2. 解钥: a , b ∈ Z ,   gcd ⁡ ( a , 26 ) = 1 a,b\in \mathbb{Z},\text{ }\gcd \left( a,26 \right)=1 a,bZ, gcd(a,26)=1
  3. 加密: 明码 r ∈ { 0 , 1 , ⋯   , 25 } r\in \left\{ 0,1,\cdots ,25 \right\} r{ 0,1,,25} a r + b ≡ s (   m o d   26 ) ar+b\equiv s\left( \bmod 26 \right) ar+bs(mod26)
  4. 解密: 密码 s s s a 11 ( s − b ) ≡ r (   m o d   26 ) { {a}^{11}}\left( s-b \right)\equiv r\left( \bmod 26 \right) a11(sb)r(mod26)
    解密式子的证明如下。
    一方面,
    gcd ⁡ ( a , 26 ) = 1 φ ( 26 ) = φ ( 2 × 13 ) = φ ( 2 ) × φ ( 13 ) = 12 }   ⇒   a φ ( 26 ) = a 12 ≡ 1 (   m o d   26 ) \left. \begin{matrix} \gcd \left( a,26 \right)=1 \\ \varphi \left( 26 \right)=\varphi \left( 2\times 13 \right)=\varphi \left( 2 \right)\times \varphi \left( 13 \right)=12 \\ \end{matrix} \right\}\text{ }\Rightarrow \text{ }{ {a}^{\varphi \left( 26 \right)}}={ {a}^{12}}\equiv 1\left( \bmod 26 \right) gcd(a,26)=1φ(26)=φ(2×13)=φ(2)×φ(13)=12}  aφ(26)=a121(mod26)
    另一方面,
    a r + b ≡ s (   m o d   26 )   ⇔   a r ≡ s − b (   m o d   26 ) ar+b\equiv s\left( \bmod 26 \right)\text{ }\Leftrightarrow \text{ }ar\equiv s-b\left( \bmod 26 \right) ar+bs(mod26)  arsb(mod26)
    因此有
      r     m o d   26 = 1 ⋅ r ≡ a 12 r = a 11 ( a r ) ≡ a 11 ( s − b )     m o d   26 \begin{aligned} & \text{ }r\text{ }\bmod 26 \\ & =1\centerdot r \\ & \equiv { {a}^{12}}r \\ & ={ {a}^{11}}\left( ar \right) \\ & \equiv { {a}^{11}}\left( s-b \right)\text{ }\bmod 26 \\ \end{aligned}  r mod26=1ra12r=a11(ar)a11(sb) mod26

加密过程
在这里插入图片描述

例子

  1. 已知仿射密码用
    x ↦ x + k     m o d   26 x\mapsto x+k\text{ }\bmod 26 xx+k mod26
    加密。现有一密码为 L B S L Y LBSLY LBSLY,请解密。
    (注:这个加密方式并不好,解密只需减 k  mod26 k\text{ mod26} k mod26。对于计算机,使用穷举法,很快就能完成)

      英语中各字母出现频率从高到低依次为
    e   t   a   o   i   n   s   r   h   l   d   c   u   m   f   p   g   w   y   b   v   k   x   j   q   z e\text{ }t\text{ }a\text{ }o\text{ }i\text{ }n\text{ }s\text{ }r\text{ }h\text{ }l\text{ }d\text{ }c\text{ }u\text{ }m\text{ }f\text{ }p\text{ }g\text{ }w\text{ }y\text{ }b\text{ }v\text{ }k\text{ }x\text{ }j\text{ }q\text{ }z e t a o i n s r h l d c u m f p g w y b v k x j q z
    而密码 L B S L Y LBSLY LBSLY L L L出现次数最多,故猜想 E → L E\to L EL,即有 k ≡ 7     m o d   26 k\equiv 7\text{ }\bmod 26 k7 mod26, 也就有解密
    y ↦ y − k     m o d   26 y\mapsto y-k\text{ }\bmod 26 yyk mod26
    下面解密:
    L B S L Y ↔ 11 ,   1 ,   18 ,   11 ,   24 − 7     m o d   26   →   4 ,   20 ,   11 ,   4 ,   17 ↔ E U L E R \begin{aligned} & LBSLY \\ & \leftrightarrow 11,\text{ }1,\text{ }18,\text{ }11,\text{ }24 \\ & \underrightarrow{-7\text{ }\bmod 26\text{ }}\text{ }4,\text{ }20,\text{ }11,\text{ }4,\text{ }17 \\ & \leftrightarrow EULER \\ \end{aligned} LBSLY11, 1, 18, 11, 24 7 mod26  4, 20, 11, 4, 17EULER
    已经有意义,如果合理,不需要进行其它尝试。

  2. 已知某通讯使用仿射密码
    x ↦ 7 x + 3     m o d   26 x\mapsto 7x+3\text{ }\bmod 26 x7x+3 mod26
    请加密 G A U S S GAUSS GAUSS和解密 M F S J D G MFSJDG MFSJDG

    1. G A U S S GAUSS GAUSS加密过程如下。
        G A U S S ↔ 6 ,   0 ,   20 ,   18 ,   18   7 x + 3   →   45 ,   3 ,   143 ,   129 ,   129     m o d     26   →   19 ,   3 ,   13 ,   25 ,   25 ↔ T D N Z Z \begin{aligned} & \text{ }GAUSS \\ & \leftrightarrow 6,\text{ }0,\text{ }20,\text{ }18,\text{ }18 \\ & \underrightarrow{\text{ }7x+3\text{ }}\text{ }45,\text{ }3,\text{ }143,\text{ }129,\text{ }129 \\ & \underrightarrow{\text{ }\bmod \text{ }26\text{ }}\text{ }19,\text{ }3,\text{ }13,\text{ }25,\text{ }25 \\ & \leftrightarrow TDNZZ \\ \end{aligned}  GAUSS6, 0, 20, 18, 18  7x+3  45, 3, 143, 129, 129  mod 26  19, 3, 13, 25, 25TDNZZ
    2. 首先解 7 11     m o d   26 { {7}^{11}}\text{ }\bmod 26 711 mod26如下。
        7 11   m o d   26 = 49 5 × 7 ≡ ( − 3 ) 5 × 7   ( ∵ 49 − 26 × 2 = − 3 ) = 9 2 × ( − 21 ) ≡ 3 × 5   ( ∵ − 21 + 26 = 5 ,   9 2 = 81 = 26 × 3 + 3 ) = 15     m o d   26 \begin{aligned} & \text{ }{ {7}^{11}}\bmod 26 \\ & ={ {49}^{5}}\times 7 \\ & \equiv { {\left( -3 \right)}^{5}}\times 7\text{ }\left( \because 49-26\times 2=-3 \right) \\ & ={ {9}^{2}}\times \left( -21 \right) \\ & \equiv 3\times 5\text{ }\left( \because -21+26=5,\text{ }{ {9}^{2}}=81=26\times 3+3 \right) \\ & =15\text{ }\bmod 26 \\ \end{aligned}  711mod26=495×7(3)5×7 (4926×2=3)=92×(21)3×5 (21+26=5, 92=81=26×3+3)=15 mod26
      然后对 M F S J D G MFSJDG MFSJDG解密如下。
        M F S J D G ↔ 12 ,   5 ,   18 ,   9 ,   3 ,   6   7 11 ( y − 3 ) ≡ 15 ( y − 3 )   (   m o d   26 )   →   135 ,   30 ,   225 ,   90 ,   0 ,   45     m o d   26   →   5 ,   4 ,   17 ,   12 ,   0 ,   19 ↔ F E R M A T \begin{aligned} & \text{ }MFSJDG \\ & \leftrightarrow 12,\text{ }5,\text{ }18,\text{ }9,\text{ }3,\text{ }6 \\ & \underrightarrow{\text{ }{ {7}^{11}}\left( y-3 \right)\equiv 15\left( y-3 \right)\text{ }\left( \bmod 26 \right)\text{ }}\text{ }135,\text{ }30,\text{ }225,\text{ }90,\text{ }0,\text{ }45 \\ & \underrightarrow{\text{ }\bmod 26\text{ }}\text{ }5,\text{ }4,\text{ }17,\text{ }12,\text{ }0,\text{ }19 \\ & \leftrightarrow FERMAT \\ \end{aligned}  MFSJDG12, 5, 18, 9, 3, 6  711(y3)15(y3) (mod26)  135, 30, 225, 90, 0, 45  mod26  5, 4, 17, 12, 0, 19FERMAT

指数密码 ( Pohlig, Hellman, 1978 )

概述
  设 p p p(可公开)是一个素数。

  1. 密钥; e ∈ Z > 0 e\in { {\mathbb{Z}}_{>0}} eZ>0(可公开), 0 ≤ e ≤ p − 1 0\le e\le p-1 0ep1, gcd ⁡ ( e , p − 1 ) = 1 \gcd \left( e,p-1 \right)=1 gcd(e,p1)=1

  2. 解钥: d ∈ Z > 0 d\in { {\mathbb{Z}}_{>0}} dZ>0(保密), 0 ≤ d ≤ p − 1 0\le d\le p-1 0dp1, e d ≡ 1     m o d   ( p − 1 ) ed\equiv 1\text{ }\bmod \left( p-1 \right) ed1 mod(p1)

  3. 加密过程: 设 a ∈ Z > 0 a\in { {\mathbb{Z}}_{>0}} aZ>0是明码, 0 ≤ a ≤ p − 1 0\le a\le p-1 0ap1,通过 a e ≡ b     m o d   p { {a}^{e}}\equiv b\text{ }\bmod p aeb modp得到密码 b b b

  4. 解密过程: b d ≡ a     m o d   p { {b}^{d}}\equiv a\text{ }\bmod p bda modp
      证明
    p 是 素 数 0 ≤ a ≤ p − 1 }   ⇒   gcd ⁡ ( a , p ) = 1   ⇒   a p − 1 ≡ 1 (   m o d   p ) \left. \begin{matrix} p是素数 \\ 0\le a\le p-1 \\ \end{matrix} \right\}\text{ }\Rightarrow \text{ }\gcd \left( a,p \right)=1\text{ }\Rightarrow \text{ }{ {a}^{p-1}}\equiv 1\left( \bmod p \right) p0ap1}  gcd(a,p)=1  ap11(modp)
    e d ≡ 1     m o d   ( p − 1 )   ⇔   e d − 1 ≡ 0     m o d   ( p − 1 )   ⇔   ( p − 1 ) ∣ ( e d − 1 ) ⇔ ∃ k ∈ Z ,   s . t .   e d − 1 = k ( p − 1 ) \begin{aligned} & ed\equiv 1\text{ }\bmod \left( p-1 \right)\text{ }\Leftrightarrow \text{ }ed-1\equiv 0\text{ }\bmod \left( p-1 \right)\text{ }\Leftrightarrow \text{ }\left. \left( p-1 \right) \right|\left( ed-1 \right) \\ & \Leftrightarrow \exists k\in \mathbb{Z},\text{ }s.t.\text{ }ed-1=k\left( p-1 \right) \\ \end{aligned} ed1 mod(p1)  ed10 mod(p1)  (p1)(ed1)kZ, s.t. ed1=k(p1)
    因此有
    b d = ( a e ) d = a e d = a 1 + k ( p − 1 ) = a ⋅ ( a p − 1 ) k ≡ a     m o d   p { {b}^{d}}={ {\left( { {a}^{e}} \right)}^{d}}={ {a}^{ed}}={ {a}^{1+k\left( p-1 \right)}}=a\centerdot { {\left( { {a}^{p-1}} \right)}^{k}}\equiv a\text{ }\bmod p bd=(ae)d=aed=a1+k(p1)=a(ap1)ka modp

  5. 第三方破解: 已知 p , e p,e p,e,未知解钥 d d d,通过求解
    e d ≡ 1     m o d   ( p − 1 ) ed\equiv 1\text{ }\bmod \left( p-1 \right) ed1 mod(p1)
    得到解钥(不难解),进而破解密码。

例子

  1. 已知某通讯使用指数密码, p = 29 p=29 p=29 e = 5 e=5 e=5。请加密 9 9 9,解密 11 11 11

    1. 以下对 9 9 9进行加密。
        9 5     m o d   29 = 81 2 × 9 = ( − 6 ) 2 × 9   ( ∵ 21 − 29 × 3 = − 6 ) = 36 × 9 ≡ 7 × 9   ( ∵ 36 = 29 × 1 + 7 ) = 63 ≡ 5     m o d   29 \begin{aligned} & \text{ }{ {9}^{5}}\text{ }\bmod 29 \\ & ={ {81}^{2}}\times 9 \\ & ={ {\left( -6 \right)}^{2}}\times 9\text{ }\left( \because 21-29\times 3=-6 \right) \\ & =36\times 9 \\ & \equiv 7\times 9\text{ }\left( \because 36=29\times 1+7 \right) \\ & =63 \\ & \equiv 5\text{ }\bmod 29 \\ \end{aligned}  95 mod29=812×9=(6)2×9 (2129×3=6)=36×97×9 (36=29×1+7)=635 mod29
      因此 9 9 9被加密成 5 5 5
    2. 未知解钥 d d d,先求解 e d = 5 d ≡ 1     m o d   ( 29 − 1 = 28 ) ed=5d\equiv 1\text{ }\bmod \left( 29-1=28 \right) ed=5d1 mod(291=28)
      1. 法一
        gcd ⁡ ( 5 , 28 ) = 1 φ ( 28 ) = φ ( 2 2 × 7 ) = 12 }   ⇒   5 φ ( 28 ) = 5 12 ≡ 1     m o d     28 \left. \begin{matrix} \gcd \left( 5,28 \right)=1 \\ \varphi \left( 28 \right)=\varphi \left( { {2}^{2}}\times 7 \right)=12 \\ \end{matrix} \right\}\text{ }\Rightarrow \text{ }{ {5}^{\varphi \left( 28 \right)}}={ {5}^{12}}\equiv 1\text{ }\bmod \text{ }28 gcd(5,28)=1φ(28)=φ(22×7)=12}  5φ(28)=5121 mod 28
        d = 1 ⋅ d ≡ 5 12 ⋅ d = 5 11 ( 5 d ) ≡ 5 11 = 25 5 × 5 ≡ ( − 3 ) 5 × 5   ( ∵ 25 − 28 = − 3 ) = 9 2 × ( − 15 ) = 81 × ( − 15 ) ≡ ( − 3 ) × ( − 15 )   ( ∵ 81 − 28 × 3 = − 3 ) = 45 ≡ 17     m o d   28 \begin{aligned} & d=1\centerdot d \\ & \equiv { {5}^{12}}\centerdot d \\ & ={ {5}^{11}}\left( 5d \right) \\ & \equiv { {5}^{11}} \\ & ={ {25}^{5}}\times 5 \\ & \equiv { {\left( -3 \right)}^{5}}\times

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此账号已停更

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值