首页 > 其他分享 >密码学期末复习

密码学期末复习

时间:2023-12-23 22:44:51浏览次数:44  
标签:13 复习 16 19 32 学期末 密码 117 mod

密码学复习笔记

欧几里得算法

欧几里得算法 (辗转相除法)利用带余除法求两个整数a和b的最大公因子的过程。
给定两个正整数a和b,假定a大于b,由带余除法,可以得到:

其中r就是a和b的最大公因子



算术基本定理

同余关系的性质

取模重要结论

快速幂计算器

快速模幂运算

如果B是2的幂,我们如何快速计算 A^B mod C

使用模乘法规则:

例如 A^2 mod C = (A * A) mod C = ((A mod C) * (A mod C)) mod C

我们可以用此来快速计算 7^256 mod 13

7^1 mod 13 = 7
7^2 mod 13 = (7^1 *7^1) mod 13 = (7^1 mod 13 * 7^1 mod 13) mod 13

我们可以把之前 7^1 mod 13 的结果 代入 这个方程式。

7^2 mod 13 = (7 *7) mod 13 = 49 mod 13 = 10
7^2 mod 13 = 10

7^4 mod 13 = (7^2 *7^2) mod 13 = (7^2 mod 13 * 7^2 mod 13) mod 13

我们可以把之前 7^2 mod 13 的结果 代入 这个方程式。

7^4 mod 13 = (10 * 10) mod 13 = 100 mod 13 = 9
7^4 mod 13 = 9

7^8 mod 13 = (7^4 * 7^4) mod 13 = (7^4 mod 13 * 7^4 mod 13) mod 13

我们可以把之前 7^4 mod 13 的结果 代入 这个方程式。

7^8 mod 13 = (9 * 9) mod 13 = 81 mod 13 = 3
7^8 mod 13 = 3

以这种方式继续,将先前的结果代入我们的等式中。

...在5个迭代之后可以得到:

7^256 mod 13 = (7^128 * 7^128) mod 13 = (7^128 mod 13 * 7^128 mod 13) mod 13
7^256 mod 13 = (3 * 3) mod 13 = 9 mod 13 = 9
7^256 mod 13 = 9

只要 B 是 2 的幂,我们就有一个快速计算 A^B mod C 的方法。

然而,如果 B 不是 2 的幂,我们也需要一种快速模乘法的方法。

如果 B是任何数,我们如何快速计算 A^B mod C?

步骤1:将B记录为二进制形式,使其成为2的幂

从最右边的数字开始,让k = 0 并且每个数字

  • 如果数字为1,我们需要一个2^k的部分,否则我们不需要
  • 将 1 加到 k,然后向左移动到下一个数

步骤 2:计算 ≤ B 的 2 的幂 mod C

5^1 mod 19 = 5

5^2 mod 19 = (5^1 * 5^1) mod 19 = (5^1 mod 19 * 5^1 mod 19) mod 19
5^2 mod 19 = (5 * 5) mod 19 = 25 mod 19
5^2 mod 19 = 6

5^4 mod 19 = (5^2 * 5^2) mod 19 = (5^2 mod 19 * 5^2 mod 19) mod 19
5^4 mod 19 = (6 * 6) mod 19 = 36 mod 19
5^4 mod 19 = 17

5^8 mod 19 = (5^4 * 5^4) mod 19 = (5^4 mod 19 * 5^4 mod 19) mod 19
5^8 mod 19 = (17 * 17) mod 19 = 289 mod 19
5^8 mod 19 = 4

5^16 mod 19 = (5^8 * 5^8) mod 19 = (5^8 mod 19 * 5^8 mod 19) mod 19
5^16 mod 19 = (4 * 4) mod 19 = 16 mod 19
5^16 mod 19 = 16

5^32 mod 19 = (5^16 * 5^16) mod 19 = (5^16 mod 19 * 5^16 mod 19) mod 19
5^32 mod 19 = (16 * 16) mod 19 = 256 mod 19
5^32 mod 19 = 9

5^64 mod 19 = (5^32 * 5^32) mod 19 = (5^32 mod 19 * 5^32 mod 19) mod 19
5^64 mod 19 = (9 * 9) mod 19 = 81 mod 19
5^64 mod 19 = 5

步骤3:使用模乘法属性来组合已算出的 mod C 的值

5^117 mod 19 = ( 5^1 * 5^4 * 5^16 * 5^32 * 5^64) mod 19
5^117 mod 19 = ( 5^1 mod 19 * 5^4 mod 19 * 5^16 mod 19 * 5^32 mod 19 * 5^64 mod 19) mod 19
5^117 mod 19 = ( 5 * 17 * 16 * 9 * 5 ) mod 19
5^117 mod 19 = 61200 mod 19 = 1
5^117 mod 19 = 1
来源:快速模幂运算

标签:13,复习,16,19,32,学期末,密码,117,mod
From: https://www.cnblogs.com/hellciw/p/17916305.html

相关文章

  • [CSP-S 2023] 密码锁
    题目描述小Y有一把五个拨圈的密码锁。如图所示,每个拨圈上是从\(0\)到\(9\)的数字。每个拨圈都是从\(0\)到\(9\)的循环,即\(9\)拨动一个位置后可以变成\(0\)或\(8\),因为校园里比较安全,小Y采用的锁车方式是:从正确密码开始,随机转动密码锁仅一次;每次都是以某个幅度......
  • [转]PKCS#5研究——基于口令的密码技术(合)
    原文地址:PKCS#5研究——基于口令的密码技术(合)-CSDN博客 本文档对PKCS#5v2.1(基于口令的密码标准)介绍的基于口令的密钥生成函数、基于口令的加密方案、基于口令的消息认证MAC方案进行简要分析记录。其核心为基于口令的密钥生成函数即将口令(Password)通过密钥导出函数KDF后生成主......
  • 头歌—衍生密码体制
    #第1关:Rabin密码体制题目描述任务描述Rabin密码体制是RSA密码体制的一种。本关任务:使用Rabin密码体制对给定的明文进行加密。相关知识为了完成本关任务,你需要掌握:Rabin密码体制。Rabin密码体制在本关中,我们描述Rabin密码体制,假定模数n=pq不能被分解,则该类体质对于选择明......
  • day 1 复习
    day1复习1.什么是编程语言:人与计算机交流的介质2.什麽事编程:用编程语言编写一堆文件3.为什么要编程:奴役计算机,解放劳动力4.计算机五大组成CPU1.控制器:控制硬件2.运算器:逻辑运算与算数运算内存1.优点:速度快2.缺点:断电即消失外存(硬盘,光盘,磁带)1.优点:永久保存2.缺......
  • 云技术分享 | EC2 之 Windows 忘记密码(二)
    01场景描述紧接上一篇文章《EC2之Windows忘记密码(一)》,本文将介绍解决的第三种方法——磁盘挂载。亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将......
  • 手把手教你isPalindrome 方法在密码验证中的应用
    在信息安全领域中,密码验证是一个极为重要的组成部分。一个强密码应具备足够的复杂性,以免遭到破解。而回文密码是一种具备特殊性质的密码,其正序和倒序相同,因此具有极高的安全性,并能发挥重要作用。在实际密码策略中,我们可以使用回文判断算法中的isPalindrome来验证用户输入的密码是......
  • 云技术分享 | EC2 之 Windows 忘记密码(一)
    01场景描述在AmazonWindowsEC2云主机中,如果忘记密码,该如何去修改密码或者连接实例呢?亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开......
  • 大物期末复习
    大物期末总复习力学质点运动学圆周运动ppt上蓝框圈住的公式有错误,法向加速度应乘以速度质点动力学功与能功能原理电磁学静电场库仑定律环形带电体距离圆心x处场强高斯定理揭示了静电场是有源场环路定理磁场毕萨定律运动电荷磁场磁......
  • 【Django】加密 settings.py文件中的数据库密码
    1.使用fromcryptography.fernetimportFernet第三方库pip3installcryptography2.Fernet的使用fromcryptography.fernetimportFernet#生成加密密钥key=Fernet.generate_key()#创建Fernet对象fernet=Fernet(key)#要加密的原始数据message=b"Hell......
  • ansible设置用户密码
    用ansible设置用户的密码时,由于需要对传输的密码进行加密,所以要在主机安装python的passlib库。利用pip安装passlib:pipinstallpasslib生成的经过加密的密码(sha512加密算法),说明:在Password后输入我们的密码"xxxxx",然后再按enter键 pipinstallpasslibpyth......