亲爱的,关注我吧

12/12

本文字数4416

来和我一起阅读吧

本文涉及知识点实操练习-

密码学原理

https://www.hetianlab.com/cour.do?w=1&c=c990c65e-108f-4d10-9efa-4aad77fc852b&pk_campaign=weixin-wemedia

密码学是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。密码学是信息安全等相关议题,如认证、访问控制的核心。

目录:

  • 前言:

  • 代数基本知识:

  • 群:

    • 循环群:

    • 加法循环群:

    • 有限循环群的生成元还具有以下性质:

  • 环:

  • 域:

  • 有限域:

  • 多项式环:

    • 不可约多项式:

  • 加密算法:









  • 上的离散对数问题:

  • ElGamal算法:

    • 计算离散对数的算法:

  • Menezes-Vanstone椭圆曲线密码体制

  • Diffie-Hellman算法:

  • 椭圆曲线上的Diffie-Hellman算法:

  • 椭圆曲线密码体制

    • 1.有限域














      的加法运算规则:

    • 有限域模p

    • 椭圆曲线的阶

    • 2.ECC加密算法描述:

  • 后记:

前言:


前面介绍了RSA公钥加密算法,而在公钥加密体系中,另一类重要的加密体制是基于离散对数的难解性,如ECC椭圆曲线加密、Diffie-Hellman算法、ElGamal算法等。为了解决离散对数问题,我们需要先学习《近世代数》。

代数基本知识:


1.群
2.环
3.域
4.有限域GF()
5.多项式环

群:


定义:
设G是非空集合,若在G内定义一种代数运算




,且满足下列4个条件,则称G(对运算




)构成一个群:
(1) 封闭性:对任意的a,b




G,恒有 a




b




G;
(2) 结合律:对任意的a,b,c




G,恒有 (a




b)




c = a




(b




c)
(3) 有单位元:存在e




G,对任意的a




G,有 a




e=e




a=a
(4) 每个元存在逆元:对任意a




G,存在b




G,使得 a




b=b




a=e,称 b 为 a 的逆元。

其中运算




可以是通常的乘法或者是加法。若




为乘法,则称G为乘法群,单位元记为1.若




为加法,则称G为加法群,单位元记为0。

一般情况下,记:

































群 G 所含元素的个数,称为该群的阶。若群G含有有限个元素,则称G为有限群,否则,为无限群。

若对群G中任何a,b




G,有 a




b = b




a,则称G为交换群或Abel群。

循环群:


定义:
设(






)


是一个群如果群




中存在一个元素




,使得对群




任意元素




都存在一个整数




,使得









,则我们称




是一个循环群。元素









的一个生成元

加法循环群:


例:



(








)


是循环群,其中








{0,1,2,3,4,5} ,




为模6加法,其生成元为 1 或 5。

生成元的含义可以理解为:1或5的加法,可以实现群







内所有的元素,如:5+5+.....+

5 mod 6 = 5,35 mod 6 = 5
10 mod 6 = 4,40 mod 6 = 4,
15 mod 6 = 3,45 mod 6 = 3
20 mod 6 = 2,50 mod 6 = 2
25 mod 6 = 1,55 mod 6= 1
30 mod 6 = 0,60 mod 6= 0

所以通过 生成元 5 的模6的加法,可以得到群内的所有元素,实现循环群。而 2,3,4不能作为生成元,是因为这些元素的模6加法并不能得到群内所有的元素,且并不是连续循环的数。

乘法循环群也是同样的道理。

有限循环群的生成元还具有以下性质:


(元素的阶):循环群



(





)












的一个生成元,1为




的单位元,




的阶为




,则:











环:


定义:
若集合R上定义了两种二元运算:+(加法)及 x(乘法),且满足下列4个条件,则称R对这两种运算构成了一个环,记为 (R,




,




):

(1) (R,




)是一个Abel群,其恒等元为零元,用0表示。
(2) 对任何a,b,c




R,有



















(3)如果一个环(R,




,




)还满足条件:对任意的a,b




R,有










,则称环(R,




,




)为交换环。

域:


定义:





是一个交换环,若




中的所有的非零元素对乘法都存在逆元,则称




为一个域。如果一个域所包含的元素是有限的则称此域是有限域,否则称为无限域。有限域中所含元素的个数称为有限域(R,




,




)的阶。

有限域:


定义1:
有限域又常称为Galois域,并以GF(q)或







表示,其中q表示有限域的阶。

定义2:
















是两个域,称















的一个可逆映射




为一个同构(映射),如果




是保持运算的映射,即对任意的











,有:







































定理3:





是有限域,则有:
(1)  在同构的意义下,阶与




相同的有限域只有一个。同阶的有限域必同构。
(2)有限域




的阶必为某个素数的幂.
(3) 设




的阶为









,p是一个素数,则




的任何一个子域的阶为







,其中m是n的因子。
(4) 记








为有限域







的所有非零元构成的集合,则








关于乘法做成一个阶为






的循环群。因此,对所有的









,有









。这个群称为







的乘法群,乘法群








的生成元称为







的本原元,共有









个本原元。
(5)  设







(其中









)是一个有限域,则对任何











及非负整数






,有:




































多项式环:


定义:





是一个域,多项式































,其中


























,称n为该多项式的次数,称







首项系数

对于域









的多项式的全体组成的集合记为







。多项式







的次数记为












设存在多项式














,满足:

1.加法运算:


















2.乘法运算:

















容易验证







对这样定义的多项式加法与乘法构成一个交换环,称为多项式交换环。

不可约多项式:


















上的一个次数大于零的多项式,如果它不能分解成两个低次数的多项式的乘积,则称












上的不可约多项式。

















中的




次不可约多项式,令























中所有次数小于




的多项式的集合。

定义















上的二元运算









如下:任取











































加密算法:


ElGamal算法
Menezes-Vanstone椭圆曲线密码体制
Diffie-Hellman算法
椭圆曲线上的Diffie-Hellman算法
椭圆曲线加密ECC









上的离散对数问题:










上的离散对数问题是指对于循环群







(p是一个素数),









是群







的生成元,对于任意的









,寻找唯一 的整数




(









)


满足:

















我们把整数




记为












,并称之为离散对数。

ElGamal算法:


背景:ElGamal是建立在解有限乘法群上的离散对数问题的困难性基础上的一种公钥密码体制。

算法描述:
(1) 公开参数:取大素数




,并取




是乘法群









{












} 的一个生成元。

(2) 密钥生成:随机选取整数

















并计算





















公开参数:









公钥:





私钥:




(3) 加密运算:对于明文




 ,选取随机整数




:












,计算:





















































得到密文
















(4) 解密运算:对于密文
















,用私钥




解密。




































计算离散对数的算法:

1. Shanks算法
2. 小步大步发(baby-step 、giant-step)算法
3. Pohlig-Hellman算法
4. 指数演算法(index-calculus)

Menezes-Vanstone椭圆曲线密码体制


背景:Menezes-Vanstone椭圆曲线密码体制是ElGamal密码体制在椭圆曲线上的模拟。

算法描述:

(1) 公开参数:设






是一个素数, E是有限域







上的由方程

















表示的椭圆曲线,










是相应的 Abel 群。G是










中具有较大素数阶




的一个点。

(2) 生成密钥:随机选取整数




:










,计算













是私钥





是公钥

(3) 加密运算:对任意明文
















,随机选取一个整数















,使得











,满足









均为非零元素。并计算:


































































得到密文为



















(4) 解密运算:

  1. 计算














  2. 计算































  3. 计算































即得明文为














Diffie-Hellman算法:


背景:Diffie-Hellman算法由Whitfield Diffie 和 Martin Hellman 提出,该算法的安全性也是基于一般有限域上的离散对数问题的难解性。

算法描述:

(1) 假设Alice和Bob之间要建立一个共享密钥。Alice和Bob首先选定一个大素数




,并选




为乘法群








中的一个生成元。

(2) Alice选取一个私钥 a(整数):










,计算





















。发送A给Bob。

(3) Bob选取一个私钥 b(整数):










,计算





















。发送B给Alice。

(4) Alice 计算






















(5) Bob 计算





















因为











,Alice与Bob计算得到的




是相同的。这样的




可以作为通信的共享密钥

由于









是保密的,所以即使攻击者知道了
















,也很难获得 Alice 与 Bob 的共享密钥




。因为攻击者要想获得




,则需要先解决离散对数问题











































,而这是困难的。

椭圆曲线上的Diffie-Hellman算法:


(1) Alice和Bob之间要建立一个共享密钥。选取公共参数:取






是某个素数幂,











上的椭圆曲线,










是相应的 Abel 群,G 是










中的一个具有较大素数阶




的点。

(2) Alice选取一个私钥 a(整数):










,计算







。发送A给Bob。

(3) Bob选取一个私钥 b(整数):










,计算







。发送B给Alice。

(4) Alice 计算








(5) Bob 计算







显然 Alice 与 Bob 计算得到的




是相同的:






即为 Alice 与 Bob 之间的共享密钥。

椭圆曲线上的Diffie-Hellman密钥交换算法的安全性基于椭圆曲线上离散对数问题的难解性。

椭圆曲线密码体制


1.有限域














的加法运算规则:









是一个素数,那么有限域







上的椭圆曲线




可以表示成方程:

























  • 椭圆曲线

















    为素数,
































    (











    )

这里











,满足:






















集合










中的加法运算定义为:
对任何


























































  1.  (




    为无穷远点)

其中:

如果








,则记







,并称










的负元。

一般地,我们将




























记为





,即



































,同时,定义:







(零元)

有限域模p


一个有限域是整数模




的集合(integers mod p,p为素数),可表示为








,








,或者







,一般用







椭圆曲线的阶

定义:一个群有多少个点叫做这个群的 “阶” (order)

2.ECC加密算法描述:

  • 点G称为基点(base point)






  • 为私钥






  • 为公钥

其中
















为椭圆曲线












上的点,









的阶









无穷大








为小于




的整数。对于给定的









,根据加法法则,计算




很容易。而基于离散对数的难解性,给定









,求




则非常困难。

  1. 公开参数:Alice选取一条椭圆曲线












    ,并选取椭圆曲线上的一点,作为基点G。

  2. 生成公钥:Alice 选取一个私钥













    ,生成公钥







  3. Alice 将












    和点K,G传给用户 Bob

  4. 加密运算:Bob 将 明文 编码到












    上的一点




    ,取一个随机数









  5. Bob 计算点























  6. 用户Bob将














    传给用户 A 。

  7. 解密运算:Alice计算:















    ,将 M 解码就得到明文了。

(这里:)

后记:

在学习ECC椭圆曲线加密等,基于离散对数难解性问题的加密算法前。我们需要先掌握好《近世代数》的知识点。因为常见的椭圆曲线加密都是在有限域内实现的,首先得知道啥是"有限域"。下一篇我会给大家演示在实战中的应用,所以基础先要打好。文中有错误的地方,欢迎读者留言指出

12/12

欢迎投稿至邮箱:EDU@antvsion.com

了解稿件投递相关

请点击公众号菜单:【来撩我吧】-原创征集

有才能的你快来投稿吧!

快戳“阅读原文”做学习人

不学点《近世代数》怎么学好现代密码学相关推荐

  1. 密码学数学基础:近世代数

    近世代数 1群 2环与理想 定义2.1: 一个集合R称为一个环,指R有一个加法运算+,和一个乘法运算 ⋅ \cdot ⋅满足 1)(R,+)是一个交换群 2)乘法运算满足结合律,即(R, ⋅ \cdo ...

  2. 群同态基本定理证明_近世代数(3)——群的基本性质

    参考教材 <近世代数>.丘维声著 <近世代数>.韩士安著 <Algebra>.Artin著 <代数学引论>.聂灵沼.丁石孙著 前言 上节我们引入了循环群 ...

  3. 近世代数--整环上的唯一分解问题--相伴是整环上的等价关系,最大公因子建立在相伴所划分的等价类上

    近世代数--整环上的唯一分解问题--相伴是整环上的等价关系,最大公因子建立在相伴所划分的等价类上 相伴是整环上的等价关系 最大公因子建立在相伴所划分的等价类上 整除 最大公因子 博主是初学近世代数(群 ...

  4. 近世代数--唯一分解整环上的多项式环--唯一分解整环上的多项式环还是唯一分解整环

    近世代数--唯一分解整环上的多项式环--唯一分解整环上的多项式环还是唯一分解整环 唯一分解整环UFD的多项式环还是唯一分解整环 博主是初学近世代数(群环域),本意是想整理一些较难理解的定理.算法,加深 ...

  5. 近世代数--整环上的唯一分解问题--唯一分解整环中元素的标准分解式

    近世代数--整环上的唯一分解问题--唯一分解整环中元素的标准分解式 定义UFD时元素的分解式 UFD中元素的标准分解式 博主是初学近世代数(群环域),本意是想整理一些较难理解的定理.算法,加深记忆也方 ...

  6. 近世代数--域--域的一些例子

    近世代数--域--域的一些例子 两个例子 Z[i]/<1+i>Z[i]/<1+i>Z[i]/<1+i> 理想<1+i><1+i><1+ ...

  7. 近世代数--多项式环--未定元的存在性

    近世代数--多项式环--未定元的存在性 引出未定元,环上的多项式 未定元indeterminate 有单位元的环上未定元的存在性 形式幂级数环Rˉ\bar{R}Rˉ(无限) 多项式环R[x]R[x]R ...

  8. 近世代数--整环上的整除理论--主理想整环中最大公因子的存在表示定理

    近世代数--整环上的整除理论--主理想整环中最大公因子的存在表示定理 在唯一分解整环中,任何两个元素都有最大公因子 主理想整环 每一个主理想整环PID都是唯一分解整环UFD 主理想整环中最大公因子的存 ...

  9. 近世代数--整环上的唯一分解问题--唯一分解整环上有算术分解定理

    近世代数--整环上的唯一分解问题--唯一分解整环有算术分解定理 引出唯一分解整环 构造唯一分解整环UFD 整环是唯一分解整环的充分必要条件 整环是唯一分解整环→\rightarrow→每个不可约元都是 ...

  10. 近世代数--整环的商域--整环D扩充为域Q

    近世代数--整环的商域--整环D扩充为域Q 整环可以扩充成域 整环如何扩充成域/商域quotient field 第一步:构造集合SSS 第二步:在SSS上定义一个等价关系 第三步:由等价关系(划分) ...

最新文章

  1. msql每个数据前面添加某个字符串查询或者更新
  2. 机器学习模型调优总结!
  3. ufs 固态硬盘_NVMe SSD新利器?WTG最高级别评分 阿卡西斯NVMe M.2移动固态硬盘盒评测...
  4. 10、HTML的基本结构
  5. 我建议您还是不要尝试和外国人讨论文学了,您干不过的。。。还是跟他们拼数学,逻辑,编程比较合适
  6. android layout过程分析,Andriod 从 0 开始自定义控件之 View 的 layout 过程 (八)
  7. 1900美元,你想要机器女朋友,还是想要女朋友?
  8. c语言里字符串和字符串字面量,string literals(字符串字面量)
  9. linux通讯录软件带头像,小程序新技能 Get!保存微信好友头像到手机通讯录
  10. 深度拷贝时,类中的非简单类型字段
  11. 单位阶跃信号是周期信号吗_vivoS7e是5G手机吗-支持5G吗-5G信号怎么样
  12. oracle设置表的主键和外键,Oracle中给表添加主键、外键
  13. 洛谷 | P1219 八皇后(DFS)C++
  14. “2007中国软件技术英雄会”之微软中国研发集团开放日
  15. 「搬文工」Mac Finder 右键快速新建、复制、移动文件工具
  16. AI - 机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总
  17. linux下libreoffice增加字体,自由办公说:LibreOffice添加中文标点扩展
  18. 模块定义图(BDD)
  19. Java 求向量夹角,坐标旋转
  20. Vivado综合running时间太长

热门文章

  1. android foobar wifi,foobar2000安卓
  2. Java Web开发Session超时设置
  3. com.autonavi.amap.mapcore.MapCore.nativeNewInstance:(Ljava/lang/String;Ljava/lang/String;)J
  4. SEO实战密码阅读笔记
  5. 小游戏策划案例精选_小游戏活动策划案?
  6. qq音乐下载|qq音乐播放器下载
  7. 【zz】标题: 安装mplayer+ffmpeg-mt+CorAVC 2.0成功,发帖纪念!
  8. dnf服务器不维修,dnf无法修理装备
  9. 十大免费java开源商城系统
  10. 如何用excel批量生成word文档,并且命名?