仿射密码(加法密码+乘法密码)
仿射密码技术:
(加法密码+乘法密码)
(可先参见加法密码与乘法密码原理)
C= Ek(m)=(k1 m+k2) mod n , K1,K2∈Zn ,gcd(k1,n)=1
M= Dk(c)=k3(c- k2) mod n(其中k3为k1逆元)
(1)0<k1<n
(2)k1与n互素,即要满足gcd(k1, n)=1,否则不存在模逆元,不能正确解密
所以即满足乘法密码技术的要求,又满足加法密码的要求,如复合函数一般
K1 K2为密钥。当K1=0时,仿射密码即为乘法密码技术,当K1=1时,即为移位替换密码(加法密码)
乘法密码的密码空间大小是φ(n),φ(n)是欧拉函数。
当n为26字母,则与26互素的数是1、3、5、7、9、11、15、17、19、21、23、25,即φ(n)=12 因此乘法密码的密钥空间为12。
注意:K1=1时 加密变换为恒等变换(即无变化)
测试案例如下:
import java.util.ArrayList;
import java.util.Scanner;
public class 仿射密码技术 {
public static int x=0,y=0;
public static ArrayList<Integer> SecretPlace=new ArrayList();
public static int gcd(int a,int b){
return b>0?gcd(b,a%b):a;
}
仿射密码(加法密码+乘法密码)相关推荐
- c++、python实现置换密码(栅栏技术,列置换)、替代密码(加法密码(Caesar密码),乘法密码)
置换密码 代码如下: #置换密码 a = input('请输入明文:') print("逆序后的密文为:",a[::-1]) 结果如图: 代码如下: #栅栏技术(栏数为7) a = ...
- 【乘法密码】根据乘法密码的加密函数求解密密钥
乘法密码的加密函数为 c = a × m ( m o d n ) c=a\times m\ (\mathrm{mod}\ n) c=a×m (mod n),其中 a a a和 n n n互质, m m ...
- 密码学基础(二)单表---置换密码 凯撒密码 棋盘密码 乘法密码 仿射密码 多表---vigenere方阵
1古典密码 (1)置换密码 明文字母重新排列,字母本身不变,但是位置发生变化(倒序或者按照按照数组排列后以行或列重新组合) (2)代替密码 分为单表代替密码和多表代替密码 单表代替密码中代表性的 凯撒 ...
- 扩展欧几里得算法求逆元---乘法密码
欧几里得算法 背景知识: 欧几里得算法:又叫做辗转相除法,用来求两个数的最大公约数.通过辗转相除,当余数为0的时候,最后的除数就是两个数的最大公约数. 例如:求20和11的最大公约数 每次将除数作为下 ...
- 密码学——乘法密码实现
乘法密码 简介:实现了乘法密码的加密和解密,能够通过功能3输入加密密钥,得到解密密钥.但是具有局限性,只支持26位英文字母.目的是为了体验乘法密码,所有程序的可靠性不做要求. #include < ...
- 有趣的密码学介绍~古典密码之凯撒密码来咯~
游说万乘苦不早,著鞭跨马涉远道.仰天大笑出门去,我辈岂是蓬蒿人! 文章目录 前言 正文 古典密码 一.古典密码概述介绍 1.置换密码 2.代换密码 二.古典密码分类介绍 1.置换密码 2.编辑本段代换 ...
- 古典密码(单表密码,维吉尼亚密码,普莱费尔密码,一次一密)
古典密码 1.单表密码(仿射加密) 仿射加密变化是:y=ax+b 算法: 仿射密码是一种表单代换密码,字母表的每个字母相应的值使用一个简单的数学函数对应一个数值,再把对应数值转换成字母. A B C ...
- 怎么知道 网站是否直接明文保存密码_忘记账号密码 浏览器记住了 怎么找回密码?...
对于健忘又没有使用保存密码插件的习惯的人来说,忘记密码是经常的事情. 而大家知道的也就是通过网站的找回密码选项,通过邮箱,手机号,人工等方式找回密码,但是如果是个小网站,没有找回的功能,或者当时是随便 ...
- mysql本地服务器密码,mysql如何修改密码
今天利用SQLyog连接本地服务器,连接不上,一直报2003的错误,这个错误是由于本地mysql没有启动,经过一番倒腾,服务开启,但连接时再一次报1045Access denied for user ...
最新文章
- iostext添加点击事件_iOS给UILabel添加点击事件
- 国内最优秀的Leangoo敏捷项目协作工具
- WINDOWS SERVER 2003从入门到精通之使用证书在WEB服务器上设置SSL(下)
- c++ 使用vs2010调用 win32api
- Flying to the Mars
- 变量在内存中的值[c][code]
- ddd 访问权限_基于DDD的微服务设计和开发实战
- 云图说|华为云自研云数据库GaussDB NoSQL,兼容多款NoSQL接口的数据库服务
- html强制文档模式ie8,html5 – IE9:强制IE9浏览器模式和文档模式
- Unix操作系统发展历史
- 达梦数据库DCA培训总结
- 【学习OpenCV4】OpenCV4入门介绍
- The RFB Protocol(RFB协议)简介
- Redis集群cluster:增加删除(伸缩)节点操作步骤
- Python基本数据类型之数字
- 计算机视觉中的transformer模型创新思路总结
- 试算平衡表两种方法比较
- 谷歌邮箱lmap服务器填什么_SMTP和IMAP是什么?
- 【FPGA入门教程】(六)时序逻辑电路设计
- 批量去除PDF的水印(完全免费)