Skip to content

期末

字数
1158 字
阅读时间
5 分钟

一、求逆元

  • 视频链接:扩展欧几里得求逆元(辗转相除法) 使用扩展欧几里得方法来求逆元(前提:ap),其中使用到了辗转相除法,如:ax1(modp) 每次运算的式子均为:余数 = 被除数 - 商×除数,再将此次的商作为下一个式子的被除数,余数作为下一个式子的除数
  • 举个例子,当 a=5,p=14 时,使用辗转相除法如下:
    • 例式如下:首先用 14÷5 得到商:2余数为4,则辗转相除法的式子为:4=145×2
    • 继续使用上一个式子的除数余数去做运算,用大数去除以小数,即:5÷4商为1余数为1,式子为:1=54×1,直到式子左侧得到的余数为1
    • 如此得到最终式子后,再使用上面的式子进行代换,即: 1 = 5 - 4×1 = 5 - (14 - 5×2) = 5×3 - 14,故 5 的逆元为 3

二、数字签名,公钥加密和私钥加密,消息认证

  • 数字签名技术原理解析:
    • 其中,公钥是是用户向权威机关CA申请的,无法抵赖
      • 该单位的私钥是由该单位自己产生的一串随机数并存储在单位计算机内,将私钥和企业信息发送给CA后,CA机构会根据私钥生成对应的公钥,实际上,发送给CA机构的并不是该单位的实际公钥,而是与公钥一共生成的证书签名请求文件(CSR文件),而CA机构拿到的所谓私钥也就是这个CSR文件
    • 如何保证CA的权威性:每次都由更高一级的CA来给低一级的CA机构发证书来担保,最高可追溯到CA根证书机构

(一)Elgamal加密算法

  • 密钥生成:
    1. 选择一个大质数 p,选择 p 的本原元 g
    2. 选择一个随机数 αZp (p阶循环阶群)
    3. g1=gαmodp
      • 本原元:gϕ(p)modp=1
      • g 是群中的生成元
      • Zp=0,1,...,p1gcd(α,p)=1
  • 公钥:(Zp,p,g,g1)
  • 私钥:α
  • 加密过程:
    1. 选择一个随机数 rZp,m 为消息
    2. 计算 C1=grmodpC2=g1r×mmodp
    3. 密文为:(C1,C2)
  • 解密过程:
    • D(C1,C2)=C2×C1α=m
  • 签名过程:S=(grmodp,(mαS1)r1mod(p1))=(S1,S2)
  • 验证签名:g1S1×S1S2gmmodp

三、RSA加密

  • 非对称加密算法
  • 计算方法:给定 n, e 的值和用户密文,求明文?
    1. 选择两个大素数 pq,计算 n=p×qϕ(n)=(p1)×(q1)
    2. 取素数 ee(1,ϕ(n)) 并且 gcd(e,ϕ(n))=1
    3. d,使得 e×d1(modϕ(n)) ,最好使用使用扩展欧几里得算法的辗转相除法,或可用公式:e×d1ϕ(n)=k (k 是一个整数)
    4. 生成公钥 (e, n) 和私钥 d,d 叫做 e 的模反元素
    5. 公钥加密:C=Memodn
    6. 私钥解密:M=Cdmodn

四、ECC加密

  • 参数选择:
    1. 选取一条椭圆曲线,得到Ep(a,b),即:代表椭圆:y3=x3+ax+b(modp) 的参数,将明文消息嵌入曲线得到点M=Pm
    2. Ep(a,b)的生成元是 GEp(a,b)G公开参数
  • 产生公钥和私钥:用户选取整数 Sk 为私钥,Pk=SkG 为公钥
  • 加密:选随机正整数 k ,密文为 C=(C1,C2) ,其中,C1=kGC2=M+kPk
  • 解密:
    • M=C2SkC1
      • 具体解释过程:C2SkC1=M+kPkSkkG=M
  • 其中,加密和解密过程计算需要对生成元个数取模,即:C1=kGmodq ,其中 q 代表生成元的个数
  • 椭圆曲线上两点相加公式:

五、仿射加密

  • 仿射加密是单表加密的一种
  • 密钥:k=(a,b),求出:a1(mod26)
  • 加密公式:y=E(x)=(ax+b)mod26
  • 解密公式:D(y)=a1(yb)mod26
    • 其中, a 与 m 互质,a1 是 a 在 Zm 群中的a乘法逆元

例题

  • 题干:
  • 加密: 字母下标从0开始
  • 解密:

贡献者

The avatar of contributor named as freeway348 freeway348

文件历史

撰写