咱也是学上密码学了
密码?
可能有人要说:
啊!这个我懂!不就是账号密码什么的嘛
可能还有人说:
啊!这个我懂!我还会背摩斯密码呢!
但是,“密码学”研究的主要是加密与解密的过程
它这个“密码”指的不是寻常说的 password (口令),而是 cryptography
历史上,密码学经过了从古典到近代再到现代的发展阶段
现在来看几个最有名的
凯撒密码
相当古典,也相当朴素,但却有这么一个威风凛凛的名字……
对字符进行简单的移位就行了
字符体系里有多少字符,最多就移多少位
如果是英文字母的话,最多移26次就能破解
简直是最简单的加密措施了是不是?!
连小学生都能发明出来啊!
放两个我在学校网安宣传周活动里看到的凯撒密码:
1.Txkdufkvrxk
2.Ufafxk
瞪眼法对我来说太难了,所以当即写了个程序
#include<bits/stdc++.h>
using namespace std;
int main(){
string a;cin>>a;
for(int i=0;i<26;i++){
for(int j=0;j<a.length();j++){
if(a[j]>'a') cout<<(char)('a'+(a[i]-'a'+i)%26);
else cout<<(char)('A'+(a[i]-'A'+i)%26);
}cout<<endl;
}
return 0;
}
解出来是wangxinyuan和xidian
RSA
大名鼎鼎的非对称加密算法,影响范围相当地广
全称为……Republic Science Association? Rabbit Snake ant?
都不是,R,S,A分别为发明这套算法的三个人的姓氏首字母……
它的设计思路主要基于:难以对大整数进行质因数分解
而证明过程主要基于欧拉定理