1、经典的简单密码:
移位密码、一次一密乱码本、仿射密码。
2、移位密码:这是最简单的一种加密方式,早期的Caesar密码就是移位密码,这种密码很简单就是约定
把第个字母的位数往后移动3位,改进后的Caesar密码是发送方和接收方协商一个密钥k,1≤k≤25,代表移
动位数。下面写一个简单的程序展示一下:
#include<iostream>
#include <ctype.h>
using namespace std;
#define CNT 5 //移动的位数
#define MAXLEN 100 //要加密的字符串可能的最大长度
int main()
{
char str[MAXLEN];
scanf("%s",str);
for(int i = 0; i < strlen(str); i ++)
{
if(str[i]-' ' != 0)
{
str[i] = toupper(str[i])+CNT;
if(str[i] > 'Z') str[i] -= 26;
}
}
printf("%s\n",str);
return 0;
}
可以想像,这种密码很容易攻击,穷举25种可能就行了。
特点:
1)是对称密码:加密密钥和解密密钥相同;
2)是单表代替密码:所有的明文字母用同一种方法
加密,即子密钥相同。
3、乘法逆
n模m的乘法逆t满足:n×t%m=1,记作:t=n-1%m
乘法逆是复杂点的密码学算法的基础。
举例:
2-1%5的值为:3,因为 3×2%5=1
3-1%100的值为:67,因为 67×3%100=1
乘法逆的计算可以用
1)穷举法:
技巧:若t×n%m=-1,则n-1%m=m-t。
如:33×3%100=-1,所以3-1%100的值为67。
2)欧几里德算法:
原理:辗转求余
gcd(a,b)=gcd(b,a mod b)这个公式是欧几里德算法的基础,gcd就是最大公约数。
把公式变形后得:
ax+by=gcd(x,y) 当等号右边等于1时,这个式子就是我们用来求的乘法逆的关键式子了。
下面是我写的一个程序,用来模仿这个计算过程:
#include<iostream>
#include<stack>
using namespace std;
stack<int> s;
int cfn(int n, int m)
{
bool flag = false;
int cnt,a,b,t=1;
if(n > m)
{
flag = !flag;
a = n;
n = m;
m = a;
}
while(t)
{
cnt = 1;
while(m-n >= n)
{
cnt++;
m-=n;
}
m -= n;
s.push(-cnt);
t = m;
m = n;
n = t;
}
a = 0,b=1;
s.pop();
while(!s.empty())
{
t = b;
b = a + b*s.top();
a = t;
s.pop();
}
return flag?a:b;
}
int main()
{
int m,n;
while(scanf("%d%d",&n,&m) == 2)
printf("%d\n",cfn(n,m));
return 0;
}
- 大小: 38.6 KB
分享到:
相关推荐
密码学期末复习笔记,这门课的书是《密码学原理与实践第三版》
西安电子科技大学 953 密码学 复习笔记 个人整理
四川大学网络空间安全学院应用密码学的课程笔记,针对2022年期末考试复习来整理的,里面还有每一次学习通章节测试的题目和答案。
名词解释-现代密码学-课后答案-第二版.doc: 这份文档很可能包含了课程中关键术语的详细解释,如公钥密码体制、对称密码体制、哈希函数、数字签名、RSA算法、椭圆曲线密码等。这些名词解释对于理解密码学的基本概念至...
密码学与网络安全是保障信息化社会安全的关键领域,它涉及到如何保护数据的机密性、完整性和可用性。本文主要从OSI安全框架、安全攻击、安全服务和安全机制等方面进行详细阐述。 首先,OSI安全框架是理解网络安全...
4. 密码学哈希函数:这类函数能够将任意长度的数据转换为固定长度的字符串,即摘要。哈希函数具有单向性,即从摘要难以反推原始数据。常见哈希函数包括MD5、SHA-1等,但目前MD5和SHA-1已不再安全,SHA-256是比特币所...
至于忘记数据库密码,可以通过关闭mysqld服务并使用特殊参数`--skip-grant-tables`重启服务,然后更新密码。这种方法需谨慎操作,因为它将暂时禁用权限系统。 总的来说,MySQL学习涉及许多基础概念和操作,包括...
### 移动计算考试复习笔记知识点汇总 #### 一、移动计算概述与安全问题 - **背景**: 随着移动设备(如智能手机和平板电脑)的普及,移动计算成为了IT领域的重要组成部分。本节主要介绍了移动计算的基本概念及其在...
山东大学软件学院信息安全导论期末复习笔记
【网络信息安全期末复习笔记存档】是一份针对网络信息安全课程的重点复习资料,涵盖了计算机与网络安全的基本概念、密码算法与协议、网络安全的现状、OSI安全框架、不同类型的攻击及其特点,安全服务和安全机制等...
4. **密码学基础**:包括对称加密、非对称加密、哈希函数等基本概念和技术。 5. **数论**:特别是在公钥密码体系中极为重要的数论知识,如模运算、同余方程等。 6. **线性代数**:向量空间、矩阵运算等内容对于理解...
第六章 密码学与对称加密算法 第七章 PKI和密码学应用 第八章 安全模型的原则、设计和功能 第九章 安全脆弱性、威胁和对策 第十章 物理安全需求 第十一章 网络安全架构与保护网络组件 第十二章 安全通信和网络攻击 ...
【标题】"达内笔记(自己整理完整)"揭示了...这份笔记全面覆盖了Java编程的重要知识点,是学习和复习Java编程的宝贵资源,尤其适合初学者和准备面试的开发者。通过逐步学习和实践,读者可以系统提升自己的Java编程技能。
本章将介绍加密技术,包括对称加密(如DES、AES)和非对称加密(如RSA),以及密码学中的哈希函数和数字签名。 通过以上章节的学习,学生可以系统地掌握计算机网络的各个方面,为应对期末考试做好充分准备。记住,...
ACCP,即高级加密专业认证,是信息安全领域中一个高级别的认证,它涵盖了密码学、安全协议、公钥基础设施(PKI)、加密算法等多个方面。对于想要在网络安全、数据保护和隐私领域深化理解的专业人士来说,ACCP认证是...
文档包含接口测试基础+招聘需求+网络协议+请求方法+接口测试工具的讲解...适合软件测试人员学习和面试复习 使用场景和目标:可以在招聘面试和实际工作中起到比较大的作用 目标:可以帮助您成为一名合格的接口测试工程师
古典密码学包括一些基本的加密方法,如凯撒密码、维吉尼亚密码等,而现代密码学则发展出了如DES、3DES、AES等对称加密算法,以及RSA、DH等非对称加密算法。这些加密技术在物联网中扮演着保障数据安全的重要角色。 ...
4. **数论**:讨论整数的性质、同余理论、素数分布等,这部分内容对于密码学、编码理论等领域具有深远影响。 5. **数学方法**:介绍如何运用数学工具解决实际问题,如微分方程、变分法、泛函分析等,培养学生的数学...
【网络安全复习笔记】 网络安全,简称信安,是一个涵盖多个领域的复杂话题。基本的网络安全概念包括策略定义、安全机制以及信息的三个核心要素:保密性、完整性和可用性。 1. **策略定义**: 安全策略是为确保...
P=NP问题是计算理论中的核心难题,影响着密码学、编码理论等多个领域。 通过深入学习这本《MIT算法导论》的课堂笔记,你可以系统地掌握算法的精髓,提高解决问题的能力,为未来的编程生涯打下坚实的基础。同时,...