网络空间安全数学基础·同余式

2024-06-08 00:36

本文主要是介绍网络空间安全数学基础·同余式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

6.1 剩余系(掌握)
6.2 同余式概念与一次同余式(熟练)
6.3 中国剩余定理(熟练)

6.1 剩余系

设m是正整数,模m同余的全体整数是一个模m剩余类,即可表示为a = qm+r, 0≤r<m,q=0,±1,±2,…,  的整数是一个模m剩余类。
剩余类中的每个数都称为该类的代表
r称为该类的最小非负剩余
模m剩余类共有m个

例:全部模8的剩余类为

{0,±8,±2×8,±3×8,…},
{1,1±8,1±2×8,1±3×8,…},

{2,2±8,2±2×8,2±3×8,…},

{7,7±8,7±2×8,7±3×8,…}.

在数轴上,一个剩余类做任意整数间隔的平移仍然是一个剩余类,或是另一个剩余类,或是它自己。

定义:从模m剩余类中各取一个代表,则称这些代表的集合为模m的一个完全剩余系。
显然一个完全剩余系在数轴上的任意整数间隔的平移都是一个完全剩余系:

定理:设a是一个整数且(a,m) =1,b是任意整数.如果x遍历模m的一个完全剩余系,则ax+b也遍历模m的完全剩余系。
即如果是模m的一个完全剩余系,则也是模m的完全剩余系。

定理:如果x1,x2分别遍历模m1和模m2的完全剩余系,且(m1,m2) = 1,则m2x1+m1x2遍历模m1m2的完全剩余系。

定义:如果一个模m的剩余类里面的数与m互素,则称它为与模m互素的剩余类。从与模m互素的每个剩余类中各取一个数构成的集合称为模m的一个简化剩余系。
推论:如果m1,m2是两个正整数,且(m1,m2)=1,则φ(m1m2)=φ(m1)φ(m2)。

定理:设正整数m的标准分解式为

定理:模m剩余类环中与m互素的剩余类构成乘法群。

推论:设m是正整数,如果(r,m) =1,则存在s使sr=1 (mod m),反之也成立。 换句话说,就是如果r,m互素,则r在模m下必存在逆元s。

推论(欧拉定理):设m是正整数,如果(r,m) =1,则r^φ( m)≡1(mod m)

推论(费马定理):如果p是素数,则r^p≡r (mod p)

6.2 同余式概念与一次同余式

定义:设f(x)为多项式:其中n是正整数,ai (0≤i≤n)是整数,则称为模m的同余式.如果an≠0 (mod m),则n称为同余式的次数。如果x0满足则x≡x0 (mod m)称为同余式的解.不同的解指互不同余的解.

例:求下列同余式的解.

1)

解 x≡1,5,6 (mod 7)

2)

解 x≡1,3,5,7,9,11,13,15 (mod 16)

3)

解 无解.

 一次同余式
定理:一次同余式ax ≡ b (mod m),a≠0 (mod m),有解的充分必要条件为(a,m)|b.

例:求980x ≡ 1500 (mod 1600)的解.

解 此题中,a = 980,m = 1600,b = 1500,(a,m) = 20,a’ = 49,m’= 80。

1)首先采用欧几里得算法求a’^(-1)(mod m’)。 由于(a’,m’) = 1,所以存在r,s,使a’r+ m’s = 1

于是我们有 31 = 80 – 49= m’ -a’,18 = a’ – 31 = 2a’ – m’,13 = 31 – 18 = 2m’ – 3a’ ,5 = 18 – 13 = 5a’ – 3m’ ,3 = 13 – 2×5 = 8m’ – 13a’ ,2 = 5 – 3 = 18a’ – 11m’ , 1 = 3 – 2 = 19m’ – 31a’ 。

所以19m’ – 31a’ = 1,

则– 31a’ ≡ 49a’ ≡ 1 (mod 80)

故a’^(-1) = 49.

2)求x0

3)同余式的解共有20个,它们为

x ≡ 75+80k (mod 1600),k = 0,1,…,19.

6.3 中国剩余定理

定理(中国剩余定理):设m1,m2,…,mk两两互素,则右边的同余式组有解,且有唯一解:,其中,i =1,2,…,k。

例:解同余式组:

x ≡ 1 (mod 5)

x ≡ 5 (mod 6)

x ≡ 4 (mod 7)

x ≡ 10 (mod 11)

按中国剩余定理求解如下: m = 5×6×7×11 = 2310,

x ≡ 3×462 + 385×5 + 330×4 + 210×10 ≡ 6731 ≡ 2111 (mod 2310).

这篇关于网络空间安全数学基础·同余式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1040754

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Java中常见队列举例详解(非线程安全)

《Java中常见队列举例详解(非线程安全)》队列用于模拟队列这种数据结构,队列通常是指先进先出的容器,:本文主要介绍Java中常见队列(非线程安全)的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一.队列定义 二.常见接口 三.常见实现类3.1 ArrayDeque3.1.1 实现原理3.1.2

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4