当前位置: 首页 > 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、《抽象代数》

相关文章:

抽象代数精解【6】

文章目录 简单密码算法模运算数学定义置换移位代换仿射 参考文献 简单密码算法 模运算数学定义 模m剩余类集 Z m Z_m Zm​ 设∀a,b∈Z(整数),m为正整数 m|b-a ,称a R b R满足反身性、对称性、传递性 1、R为同余关系,…...

如何选择合适的PCB材料?FR4、陶瓷、还是金属基板?

选择合适的PCB材料对于电路板的性能、可靠性和成本至关重要。不同的PCB材料具有不同的特性,适用于不同的应用场景。 01 FR4(玻璃纤维环氧树脂) FR4的特点: 广泛应用:FR4是最常见的PCB基板材料,广泛应用…...

PXE学习及其简单应用

一、PXE 的定义 PXE 是一种基于网络的启动技术,最初由 Intel 开发,旨在提供一种在没有本地存储设备的情况下通过网络启动操作系统的标准。PXE 集成在计算机的 BIOS 或 UEFI 中,允许计算机从网络服务器下载并启动操作系统或其他软件。 二、PX…...

【Python】把list转换成json文件(list中为字典,元素按行写入)

0.前言 数据需要处理成与大模型输入相同类型的数据,从csv文件读出后,想要转换成json文件,看了好多资料都是把整个list写入了json,并不是我想要的格式,这里记录一下最后的按行写入的格式。 1.list转json import json …...

《机器人SLAM导航核心技术与实战》第1季:第8章_激光SLAM系统

视频讲解 【第1季】8.第8章_激光SLAM系统-视频讲解【第1季】8.1.第8章_激光SLAM系统_Gmapping算法-视频讲解【第1季】8.2.第8章_激光SLAM系统_Cartographer算法-视频讲解【第1季】8.3.第8章_激光SLAM系统_LOAM算法-视频讲解 第1季:第8章_激光SLAM系统 先 导 课第…...

【安当产品应用案例100集】005-安当ASP实现Exchange双因素登录认证

Exchange双因素登录通过增加额外的安全验证层,可以有效提高企业邮箱系统的安全性,减少了数据泄露和账号被盗的风险,同时也符合了日益严格的安全合规要求。 其必要性主要体现在以下几个方面: 提高安全性:传统的用户名…...

【Bug】Pytorch RuntimeError: DataLoader worker (pid(s) 15904) exited unexpectedly

【Bug1】RuntimeError: DataLoader worker (pid(s) 15904) exited unexpectedly 知乎:https://zhuanlan.zhihu.com/p/712407893 环境 Windows 11 Python 3.10 torch 2.0.1 numpy 1.25.0问题详情 在使用 PyTorch 的 DataLoader 时出现的错误。详情 RuntimeError:A…...

谈谈冯诺依曼体系

我们都知道冯诺依曼体系这张图最为代表性,而接下来我们就来浅谈一下各部分之间的作用~ 输入设备:键盘,磁盘,网卡,话筒等等 输出设备:磁盘,网卡,声卡,显示屏等等 这些硬件…...

第十二章 元数据管理10分

12.1 引言 如果没有元数据,组织可能根本无法管理其数据。 ISO/IEC11179 元数据注册标准。 元数据管理原则:应归尽归,应收尽收。衡量标准:目录是否完整。(去第十二章 元数据管理)。 主数据管理:主…...

eco_tracker

特征 VGG是第一个提出使用块的想法,通过使用循环和子程序,可以很容易地在任何现代深度学习框架的代码中实现这些重复的架构。 原始VGG网络有5个卷积块,其中前两个块各有一个卷积层,后三个块各包含两个卷积层。 第一个模块有64个…...

electron 鼠标事件

版本:"electron": "^22.3.27",实现一个在windows下图片点击右键,使用electron打开的功能。 一、注册表操作 注册表工具类 const cp require("child_process"); const { app } require(electron/remote) e…...

网络安全第一次作业(ubuntuan安装nginx以及php部署 and sql注入(less01-08)))

ubuntuan安装nginx以及php部署 1.安装依赖包 rootadmin123-virtual-machine:~# apt-get install gcc libpcre3 libpcre3-dev zliblg zliblg-dev openssl libssl-dev2.安装nginx 到https://nginx.org/en/download.html下载nginx 之后将压缩包通过xtfp传输到ubuntu的/usr/loc…...

【OpenHarmony4.1 之 U-Boot 2024.07源码深度解析】017 - init_sequence_f 各函数源码分析(一)

【OpenHarmony4.1 之 U-Boot 2024.07源码深度解析】017 - init_sequence_f 各函数源码分析(一) 一、setup_mon_len():配置 gd->mon_len 监控长度二、fdtdec_setup() :设备树初始化,配置 gd->fdt_blob 指向uboot镜像末尾的 device tree三、【RK3568未跑】trace_early…...

Mojo AI编程语言(十七)跨平台开发:应用广泛适配

目录 1. Mojo语言简介 2. 跨平台开发的挑战 3. Mojo语言的跨平台特性 3.1 编译器支持 3.2 标准库支持 3.3 抽象层 4. 跨平台开发的最佳实践 4.1 避免平台特定代码 4.2 使用依赖管理工具 4.3 测试覆盖率 5. 高级跨平台开发技巧 5.1 使用容器 5.2 持续交付 5.3 性能…...

Python面试题:结合Python技术,如何使用Astropy进行天文数据处理

Astropy 是一个用于天文学研究的 Python 库,它提供了处理天文数据的多种工具和函数。以下是一些使用 Astropy 进行天文数据处理的示例: 安装 Astropy 首先,需要确保已安装 Astropy,可以使用以下命令进行安装: pip i…...

Jpa-多表关联-OneToOne

Jpa-多表关联-OneToOne 准备JoinColumnOneToOne属性targetEntitycascade*PERSISTMERGEREMOVEREFRESH orphanRemovalfetchoptionalMappedBy* OneToOne在 hibernate中用于对表与表之间进行维护关联 准备 import com.alibaba.fastjson.JSON; import jakarta.persistence.*; impor…...

zdpy+vue3+onlyoffice文档系统实战上课笔记 20240805

上次 上次计划 1、最近文档表格完善 2、实现登录功能 3、新建文件,复制文件,删除文件 4、其他 目前任务:最近文档表格完善 1、在名称前面,渲染这个文档的图标 2、大小的基本的单位是kb,超过1024kb则换成mb&#xff0…...

【Linux 从基础到进阶】Linux 内核参数调优

Linux 内核参数调优 引言 内核参数调优是提升 Linux 系统性能和稳定性的重要手段。通过合理配置和优化内核参数,可以显著改善系统资源利用率和响应速度。本文将介绍内核参数的调优方法,并提供适用于 CentOS 和 Ubuntu 系统的具体示例。 1. 内核参数简介 内核参数是控制 L…...

【Java数据结构】---泛型

乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 ,Java 欢迎大家访问~ 创作不易,大佬们点赞鼓励下吧~ 文章目录 包装类装箱和拆箱泛型泛型…...

Java Lambda表达式总结(快速上手图解)

Java Lambda表达式总结(快速上手详解)-CSDN博客https://blog.csdn.net/m0_66070037/article/details/140912566?spm1001.2014.3001.5501...

如何用deberta-v3-base-zeroshot-v2.0构建企业级NLP应用?完整教程来了

如何用deberta-v3-base-zeroshot-v2.0构建企业级NLP应用?完整教程来了 【免费下载链接】deberta-v3-base-zeroshot-v2.0 项目地址: https://ai.gitcode.com/hf_mirrors/NingBo_Ascend/deberta-v3-base-zeroshot-v2.0 deberta-v3-base-zeroshot-v2.0是一款基…...

CVPR 2023反无人机数据集实战:用ModelScope上的开源模型快速上手目标检测

CVPR 2023反无人机数据集实战:用ModelScope上的开源模型快速上手目标检测无人机技术的普及带来了新的安全挑战,从隐私侵犯到关键设施威胁,反无人机技术正成为计算机视觉领域的热点。CVPR 2023反无人机竞赛提供的开源数据集和基线模型&#xf…...

癫痫手术精准定位:基于脑电信号昼夜节律与多生物标志物的机器学习分析框架

1. 项目概述:当机器学习遇见脑电信号,如何让癫痫手术更精准?作为一名长期耕耘在生物医学信号处理与机器学习交叉领域的工程师,我常常思考如何将算法模型从实验室的“玩具”变成临床医生手中可靠的“手术刀”。癫痫,这个…...

浅聊26上半年软考架构师

2026年上半年架构师考试已然落幕,大家都考的如何?架构师共有三门考试,上午综合知识(75道选择题)案例分析,时间为8.30-12.30;下午论文,时间为14.30-16.30。下面说说我整体的备考过程。…...

用STM32CubeMX和HAL库快速上手WS2812B:告别手动计算延时,一键生成驱动框架

基于STM32CubeMX的WS2812B智能灯光控制:从零构建现代化驱动方案在智能硬件和物联网设备快速发展的今天,WS2812B可编程LED灯带因其丰富的色彩表现和简单的单线控制方式,成为创客和工程师们最喜爱的显示组件之一。然而,传统的寄存器…...

自制射频功率计:基于AD8317芯片,成本43欧元实现1MHz-10GHz测量

1. 项目概述:为什么我要亲手打造一台射频功率计在无人机和模型飞行器的圈子里,尤其是在我们荷兰FMS Spaarnwoude俱乐部,合规飞行是头等大事。我给我的八轴飞行器加装了云台相机和图传系统,工作在5.8GHz频段。根据本地法规&#xf…...

Python基础语法:常用内置函数

round():四舍五入 # 省略 ndigits print(round(3.14)) # 输出 3(int) print(round(3.66)) # 输出 4# 指定 ndigits print(round(3.14159, 2)) # 输出 3.14(float) print(round(3.666, 2)) # 输出 3.67# …...

DeepSeek-R1补全能力封测倒计时(仅剩72小时开放API灰度权限):这份内部测试SOP已被3家头部科技公司紧急采购

更多请点击: https://intelliparadigm.com 第一章:DeepSeek-R1代码补全能力封测全景概览 DeepSeek-R1 是深度求索(DeepSeek)推出的高性能开源推理模型,在代码补全场景中展现出显著的上下文理解力与多语言泛化能力。本…...

为Claude Code配置稳定API源并解决访问限制

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为Claude Code配置稳定API源并解决访问限制 Claude Code 作为一款强大的 AI 编程辅助工具,其原生服务在某些情况下可能…...

defx.nvim 安装与配置完全教程:从零开始搭建高效文件管理系统 [特殊字符]

defx.nvim 安装与配置完全教程:从零开始搭建高效文件管理系统 🚀 【免费下载链接】defx.nvim :file_folder: The dark powered file explorer implementation for neovim/Vim8 项目地址: https://gitcode.com/gh_mirrors/de/defx.nvim defx.nvim …...