社区
数据结构与算法
帖子详情
仿射密码算法
senkiner
2005-01-08 11:35:38
加密函数为 c=am+b(mod 26)
解密函数为 m=k(y-b)(mod 26)
注:k为a的-1次方
请问:k是怎样求的啊?
比如 a=7的时候,知道k=15
...全文
323
4
打赏
收藏
仿射密码算法
加密函数为 c=am+b(mod 26) 解密函数为 m=k(y-b)(mod 26) 注:k为a的-1次方 请问:k是怎样求的啊? 比如 a=7的时候,知道k=15
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
senkiner
2005-01-08
打赏
举报
回复
另外,我把其他几个数的也写出来:
a=3时,k=9
a=5时,k=21
a=7时,k=15
a=11时,k=19
================================
k的数值为 (a的-1 次方 mod 26)
也就是 (a的-1 次方 mod 26)是怎样求的阿?
senkiner
2005-01-08
打赏
举报
回复
递归的,是否有初始值?
比如知道a=5,b=26,怎样求x啊?
LeeMaRS
2005-01-08
打赏
举报
回复
k * k^-1 = 1 (mod 26)
k^-1叫k的模逆, 可以用扩展的Euclid算法求出来.
ax = 1 (mod 26) 其中x = a^-1
相当于 ax + by = 1, b = 26, 求满足条件的一组x, y. 当然我们只要x就好.
现在考虑一般的 ax + by = 1 如何求解.
满足条件的x, y存在的条件是G C D(a, b) = 1.
然后有 ax + by = G C D(a, b)
有 bx' + (a % b)y' = G C D(b, a % b)
而且有Euclid定理 G C D(a, b) = G C D(b, a % b)
所以, 有ax + by = bx' + (a % b)y'
= bx' + (a - [a/b]*b)y'
= bx' + ay' - [a/b]*b y'
= ay' + b(x' - [a/b]y')
对应, 得x = y', y = x' - [/b]y'. [a/b]是a/b再取整.
特别的, 在b = 0的时候, G C D(a, b) = a = a * 1 + b * 0
即 x = 1, y = 0
这样我们就得到一个递归的扩展Euclid算法.
jim138
2005-01-08
打赏
举报
回复
UP ::)
仿射密码
算法
实现[项目源码]
仿射密码
算法
是一种经典的加密技术,其原理基于数学中的同余理论和数论。在该
算法
中,每个字母都被转换成一个数字,然后进行数学运算以生成密文。
算法
的核心在于密钥的选择,密钥由两个整数a和b构成,其中a与字母表...
仿射密码
代码C编写带界面
仿射密码
是一种古典的...综上所述,这个项目涵盖了古典密码学的
仿射密码
算法
,以及C语言编程和MFC界面设计的基础知识。通过这个项目,开发者可以深入理解字符编码、模运算、线性代数以及如何用C++构建图形用户界面。
仿射密码
C语言程序代码
仿射密码
是一种古典的密码学方法,用于对文本进行加密,以保护信息的安全。它基于线性同余方程,结合了乘法和加法运算,使得原始信息变得难以理解。这种密码系统由两个参数(a和b)定义,其中a是乘法因子,b是偏移量...
仿射密码
加密与解密C++源程序
仿射密码
是一种简单的加密
算法
,它使用线性变换来进行加密和解密。下面我们将详细介绍
仿射密码
的加密和解密
算法
,并提供相应的C++源代码。
仿射密码
的加密
算法
是一个线性
算法
,密钥空间为K={(k1,k2)|k1,k2∈Z26,...
仿射密码
加解密 C语言
基于C语言,实现
仿射密码
算法
,随机生成密钥a、b,加密和解密程序对任意满足条件的a、b都能够进行处理。
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章