当前位置: 首页 > news >正文

抽象代数精解【6】

文章目录

  • 简单密码算法
    • 模运算数学定义
    • 置换
      • 移位
      • 代换
      • 仿射
    • 参考文献

简单密码算法

模运算数学定义

模m剩余类集 Z m Z_m Zm
设∀a,b∈Z(整数),m为正整数
m|b-a ,称a R b
R满足反身性、对称性、传递性
1、R为同余关系,也是Z的一个等价关系。
2、记为a≡b(mod m),即: a同余于b,模m。
3、[a]为整数集Z的一个模m剩余类
(1) [a]可记为 a ‾ \overline {a} a
(2) 对应的商集为Z的模m剩余类集,记作 Z m Z_m Zm


  • 1、 Z m Z_m Zm 上定义加法和乘法,都具有运算封闭性、符合交换律和结合律。
    2、加法有逆元和单位元,乘法只有单位元。
    3、加法逆元是 m − a ‾ \overline{m-a} ma,单位元是 0 ‾ \overline{0} 0 ,加法构成群。
    4、乘法单位元是 1 ‾ \overline{1} 1,乘法无逆元,因此就乘法运算只能是半群,乘法构成半群。
    5、乘法与加法存在分配律
    ( a + b ) c = ( a c ) + ( b c ) (a+b)c=(ac)+(bc) (a+b)c=(ac)+(bc)
    c ( a + b ) = ( c a ) + ( c b ) c(a+b)=(ca)+(cb) c(a+b)=(ca)+(cb)
    因此构成了环。

置换

移位

  • 定义移位映射
    e k ( x ) = ( x + k ) m o d 26 d k ( y ) = ( y − k ) m o d 26 e k 、 d k 互为逆映射, e k 为加密, d k 为解密。 注意,这里的 e k 、 d k 映射为单射。 e_k(x)=(x+k) \quad mod \quad 26\\ d_k(y)=(y-k) \quad mod \quad 26\\ e_k、d_k互为逆映射,e_k为加密,d_k为解密。 \\注意,这里的e_k、d_k映射为单射。 ek(x)=(x+k)mod26dk(y)=(yk)mod26ekdk互为逆映射,ek为加密,dk为解密。注意,这里的ekdk映射为单射。
    设k=3,x为D,则加密结果为G,y为G,解密结果为D。
  • 实质上移位也是一种置换。

设X为一个集合,含有n个元素,每个元素对应原文的一个字母(或一个字节),如果是字母则有26个,如果是字节则有256( 2 8 2^8 28)个。
定义 S n = { φ ∣ φ 是 X 上的双射 } 称 s n 中的元素为 n 元置换。 令集合 X = { 1 , 2 , 3 , . . . , n } ,任意置换 φ ∈ S n ,可表示为如下形式 φ = ( 1 2 . . . n φ ( 1 ) φ ( 2 ) . . . φ ( n ) ) 此处也可设 X = { 0 , 1 , 2 , 3 , . . . , n − 1 } φ = ( 0 1 . . . n − 1 φ ( 0 ) φ ( 1 ) . . . φ ( n − 1 ) ) 定义S_n=\{φ|φ是X上的双射\}\\ 称s_n中的元素为n元置换。\\ 令集合 X=\{1,2,3,...,n\} ,任意置换φ∈S_n,可表示为如下形式\\ φ=\begin{pmatrix} 1 & 2 &...&n\\ φ(1) & φ(2)&...&φ(n) \end{pmatrix} \\此处也可设 X=\{0,1,2,3,...,n-1\} \\ φ=\begin{pmatrix} 0 & 1 &...&n-1\\ φ(0) & φ(1)&...&φ(n-1) \end{pmatrix} 定义Sn={φφX上的双射}sn中的元素为n元置换。令集合X={1,2,3,...,n},任意置换φSn,可表示为如下形式φ=(1φ(1)2φ(2)......nφ(n))此处也可设X={0,1,2,3,...,n1}φ=(0φ(0)1φ(1)......n1φ(n1))
这里的 φ φ φ就是 e k e_k ek也可以是 d k d_k dk
移位规定的 φ φ φ就是置换
φ ( x ) = ( x + k ) m o d n k 是秘钥 φ(x)=(x+k) \quad mod \quad n \\ k是秘钥 φ(x)=(x+k)modnk是秘钥
看一个置换
φ = ( 0 1 . . . n − 1 φ ( 0 ) φ ( 1 ) . . . φ ( n − 1 ) ) 定义 s 5 中的 φ ( x ) = ( x + k ) m o d 5 , k = 3 , n = 5 φ = ( 0 1 2 3 4 3 4 0 1 2 ) 置换 φ 为长度为 5 的轮换 φ=\begin{pmatrix} 0 & 1 &...&n-1\\ φ(0) & φ(1)&...&φ(n-1) \end{pmatrix} \\定义s_5中的φ(x)=(x+k) \quad mod \quad 5 ,k=3,n=5 \\ φ=\begin{pmatrix} 0&1 & 2 &3&4\\ 3&4 & 0&1&2 \end{pmatrix} \\置换φ为长度为5的轮换 φ=(0φ(0)1φ(1)......n1φ(n1))定义s5中的φ(x)=(x+k)mod5,k=3,n=5φ=(0314203142)置换φ为长度为5的轮换
任意置换 φ ∈ S 26 φ∈S_{26} φS26,对于26个字母来说,即定义了移位运算(移位映射φ)

代换

当然如果在这里指定置换φ函数中每个自变量对应的函数值,即:分段常数函数,就是代换。
26个字母共有 26 ! 26! 26种置换,一个字节共有 256 ! 256! 256种置换。
每种置换构成一个密码表(每个原文以及对应的密文组成)

仿射

φ ( x ) = ( a x + b ) m o d n n 为 26 或 256 φ(x)=(ax+b) \quad mod \quad n \\ \\n为26或256 φ(x)=(ax+b)modnn26256
1、加密映射定义如下:
n 为 26 或 256 , 映射为单射 e ( x ) = ( a x + b ) m o d n n为26或256,映射为单射 \\ e(x)=( ax+b)\quad mod \quad n n26256,映射为单射e(x)=(ax+b)modn
因为同余方程 a x ≡ b ( m o d m ) 有唯一解的充要条件是 g c d ( a , m ) = 1 ax≡b(mod \quad m)有唯一解的充要条件是gcd(a,m)=1 axb(modm)有唯一解的充要条件是gcd(a,m)=1
所以规定 g c d ( a , n ) = 1 ,即 a 与 n 互素 gcd(a,n)=1,即a与n互素 gcd(a,n)=1,即an互素
2、解密映射定义如下:
同余方程 y ≡ a x + b ( m o d n ) a x ≡ y − b ( m o d n ) a − 1 ( a x ) ≡ a − 1 ( y − b ) ( m o d n ) d ( y ) = a − 1 ( y − b ) m o d n n 为 26 或 256 , 映射为单射 同余方程y≡ax+b (mod \quad n) \\ax≡y-b (mod \quad n) \\a^{-1}(ax)≡a^{-1}(y-b) (mod \quad n) \\d(y)=a^{-1}(y-b) \quad mod \quad n \\n为26或256,映射为单射 同余方程yax+b(modn)axyb(modn)a1(ax)a1(yb)(modn)d(y)=a1(yb)modnn26256,映射为单射
3、密钥为 ( a , b ) a , b ∈ Z n (a,b) \quad a,b∈Z_n (a,b)a,bZn

参考文献

1、《密码学原理与实践(第三版)》
2、《抽象代数》

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • RabbitMQ使用Jackson进行消息队列的对象传输
  • CSP 2019 第四题: 加工零件
  • 量产工具——复习及改进(后附百问网课程视频链接)
  • 数字信号处理2: 离散信号与系统的频谱分析
  • 解决客户访问超时1s问题
  • C#如何对某个词在字符串中出现的次数进⾏计数(LINQ)
  • YOLOX修改检测框、标签文字的粗细大小
  • 产业链分析指南:产业链分析的七个步骤!
  • <数据集>电梯内人车识别数据集<目标检测>
  • 14. 计算机网络HTTPS协议(二)
  • LLM - 理解 主流大模型 LLM 都使用 Decoder Only 架构的原因 (总结8点)
  • MQTT服务器-安装篇(阿里云主机)
  • 使用 Arduino 串行绘图仪可视化实时数据
  • 在Fragment中显示高德地图
  • 多叉树的深度优先遍历(以电话号码的字母组合为例)
  • 2017-09-12 前端日报
  • Docker 笔记(2):Dockerfile
  • node-glob通配符
  • oldjun 检测网站的经验
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • swift基础之_对象 实例方法 对象方法。
  • underscore源码剖析之整体架构
  • Vue UI框架库开发介绍
  • Web标准制定过程
  • 检测对象或数组
  • 类orAPI - 收藏集 - 掘金
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 如何用vue打造一个移动端音乐播放器
  • 一道面试题引发的“血案”
  • 应用生命周期终极 DevOps 工具包
  • 用element的upload组件实现多图片上传和压缩
  • 最近的计划
  • 你对linux中grep命令知道多少?
  • NLPIR智能语义技术让大数据挖掘更简单
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • ######## golang各章节终篇索引 ########
  • (42)STM32——LCD显示屏实验笔记
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (四)js前端开发中设计模式之工厂方法模式
  • (四)opengl函数加载和错误处理
  • (一) storm的集群安装与配置
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)http协议
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • ./和../以及/和~之间的区别
  • .NET程序员迈向卓越的必由之路
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • 。。。。。
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [ 物联网 ]拟合模型解决传感器数据获取中数据与实际值的误差的补偿方法
  • [1]从概念到实践:电商智能助手在AI Agent技术驱动下的落地实战案例深度剖析(AI Agent技术打造个性化、智能化的用户助手)
  • [2010-8-30]