希尔密码(Hill Cipher)

定义

设m>=2为正整数,P=C=(Z26)m,且K={定义在Z26上的m×m可逆矩阵},对任意的密钥K,定义:ek(x)=xK和dk(y)=yK-1 ,以上运算都是在Z26上进行的。

从一个例子开始希尔密码的学习。

引例

设m=2,每个明文单元使用x=(x1,x2)来表示,同样密文单元使用y=(y1,y2)来表示。具体加密中,y1,y2被表示x1,x2的线性组合。例如:

y1=(11x1+3x2)mod26

y2=(8x1+7x2)mod26

使用矩阵,可将上式简写为
(y1,y2)=(x1,x2)[11837](1)(y_1,y_2)=(x_1,x_2)\begin{bmatrix} 11 & 8 \\ 3 & 7 \end{bmatrix} \tag{1} (y1​,y2​)=(x1​,x2​)[113​87​](1)
以上的运算都是在Z26上进行的,密钥K一般取为一个m×m的矩阵,记为K=(ki,j).对于明文x=(x1,x2…xm)∈P以及k属于K,按照下图方法来计算y=ek(x)=(y1,y2…ym)
(y1,y2...ym)=(x1,x2...xm)[k1,1k1,2...k1,mk2,1k2,2...k2,m...km,1km,2...km,m](2)(y_1,y_2...y_m)=(x_1,x_2...x_m)\begin{bmatrix} k_{1,1} & k_{1,2} ... & k_{1,m}\\ k_{2,1} & k_{2,2} ... & k_{2,m}\\ ...\\ k_{m,1} & k_{m,2} ... & k_{m,m}\\ \end{bmatrix} \tag{2} (y1​,y2​...ym​)=(x1​,x2​...xm​)⎣⎢⎢⎡​k1,1​k2,1​...km,1​​k1,2​...k2,2​...km,2​...​k1,m​k2,m​km,m​​⎦⎥⎥⎤​(2)

或者也可以使用矩阵形式,直接表示为y=xK.

由上可知,密文是通过对明文进行线性变换得到的。

接下来我们主要来考虑解密的过程,也就是如何从y算出x.根据线性代数的知识我们很容易想到求矩阵的逆矩阵K-1来进行解密变换,相应的明文应该为x=yK-1

【密码学原理与实践】(五)希尔密码相关推荐

  1. 密码学原理与实践_到底什么是防火墙入侵检测密码学身份认证?如何高效建立网络安全知识体系?...

    今天杰哥给大家推荐一本新的书籍,名字叫做<网络安全原理与实践>,这本书有一定的阅读门槛,不是一本面向新手或新人的书籍,至少需要你具备网络基础的功底,例如已学习并掌握了我前面推荐的两本书了. ...

  2. 密码学原理与实践第三版pdf_云计算原理与实践PDF电子书下载

    今天分享的电子书是<云计算原理与实践>PDF电子书下载 本书细节 书名:<云计算原理与实践> 作者:王伟主编:郭栋,张礼庆,邱娟,张静轩,张东启,谭一鸣编著 出版时间:2018 ...

  3. 《密码学原理与实践》 第一章 古典密码学

    1.1 几个简单的密码体制 密码的数学定义 1.1.1 移位密码(shift cipher) 一个实用的加密体制,必须满足下面两点: 1. 加密函数e(k)和解密函数d(k)都应该易于计算 2. 对任 ...

  4. 【密码学原理与实践】(一)移位密码 附java代码实现

    移位密码(Shift Cipher) 转载请著名出处 密码体制 一个密码体制是满足以下条件的五元组(P,C,K,E,D) P表示所有可能的明文组成的有限集 C表示所有可能的密文组成的有限集 K表示秘钥 ...

  5. 【密码学原理与实践】(二)代换密码 符java代码实现

    代换密码(Substitution Cipher) 转载请著明出处 定义 令P=C=Z26,K是由26个数字0,1,-25的所有可能的置换组成,对任意的π∈K,定义eπ(x)=π(x)和dπ(y)=π ...

  6. 【密码学原理与实践】(三)仿射密码 符java代码实现

    仿射密码(Affine Cipher) 转载请著明出处 仿射密码是代换密码的一种特殊情况. 在学习仿射密码之前我们首先需要了解几个定理 定理 同余方程唯一解定理 设a ∈ Zm,对任意的b∈Zm,同余 ...

  7. 【密码学原理与实践】(四)维吉尼亚密码 符java代码实现

    维吉尼亚密码(Vigenere Cipher) 转载请著明出处 无论是移位密码还是代换密码,一旦秘钥被选定,则每个字母对应的数字都被加密变换成对应的唯一数字.我们称这种为单表代换密码,而本篇讲的是一种 ...

  8. 密码学原理与实践第三版pdf_喜报!Nervos 研究员 Alan 论文被国际密码学顶会欧密会收录...

    近日,Nervos 基金会密码学研究员 Alan Szepieniec 的论文<Transparent SNARKs from DARK Compilers>被国际密码学顶会欧密会收录,同 ...

  9. 【密码学原理与实践】【Chapter 1】【导论】

    Chapter 1 导论 Part 0 任务 对下面提到的古典加密方案进行KPA攻击 Part 1 古典密码学和现代密码学 现代密码学:通过研究数学知识保护信息系统的安全 Part 2 私钥加密设定 ...

  10. 【密码学原理与实践】(六)置换密码 符java代码实现

    置换密码 置换密码与前面的代换密码是不一样的,置换密码是保持明文的所有字母不变,只是利用置换打乱了明文字母的位置和次序. 首先需要明白,置换既是单射又是满射 定义 令m为一正整数,P=C= ( Z 2 ...

最新文章

  1. matlab 方波_MATLAB之Simulink(二)利用switch模块将正弦信号变为方波信号
  2. 什么是初效过滤器_聊聊中效过滤器的哪些事?
  3. 我读过的最好的epoll讲解--转自”知乎“ 【转】
  4. Ubuntu启用休眠hibernate
  5. 会计核算方法的组成及联系
  6. php smarty入门,smarty 快速入门
  7. 1073 多选题常见计分法 (20 分)
  8. 东京战纪服务器维护中,东京战纪7月21维护公告 当前测试进度介绍
  9. opencv之划痕缺陷检测
  10. linux查看日历_能从远程获得乐趣的 Linux 命令 | Linux 中国
  11. mac 安装docker
  12. 【毕业求职季】-听说你想去大厂看学妹,带你看看字节广告运营岗面试长啥样?
  13. 苹果审核4.3如何解决?混淆?还是重新上架?用这招居然成功上架AppStore了!
  14. MPLS排错练习题分享
  15. el-date-picker由中国时间转换成格林尼治时间
  16. python进程和线程大全
  17. PostgreSQL 技术内幕(二) Greenplum-AO表
  18. php创蓝253四要素认证_【PHP】创蓝253云通讯平台国际短信API接口demo
  19. GNSS 常用缩略语汇总
  20. TDIfw在windows 10 1903的测试

热门文章

  1. 基于java客户关系管理系统
  2. windows11无法添加朝鲜语输入法
  3. 微信加人:你需要了解的规则
  4. 安卓手机微信数据恢复取证研究 EnMicroMsg.db FTS5IndexMicroMsg_encrypt.db
  5. 谷歌浏览器xp32位_如何正确的配置系统的浏览器系列篇(五)——合同管理系统...
  6. 新出行超级产业链之交通工具变革(网址导航)
  7. css的鼠标手势总结
  8. 关于BPSK、QPSK的一些理解,以及MATLAB实现
  9. 如何在计算机设置鼠标宏,鼠标宏怎么设置,教您鼠标如何设置宏
  10. YUV420数据格式详解