密码学----基本概念
2017-08-09 00:27
225 查看
密码学的目的是通过将信息编码使其不可读,从而达到安全性。
1、明文和密文
明文信息是知道这种语言的任何人都能理解的,该信息不进行任何编码,是发送人、接受人和任何访问信息的人都能理解的信息。
明文信息用某种模式编码之后,得到密文信息。
2、替换方法
2.1凯撒加密法
第一个替换加密实例,把明文消息中的每个字母换成向后三个字母的字母,是隐藏明文信息的脆弱机制。
破解:逆转凯撒加密法,把每个字母换成向前三个字母的字母。
2.2凯撒加密法的改进
把明文中的字母换成任何有效的字母,这样,每个字母有25种替换可能。
破解:假设K为1,读取整个密文信息,将密文中的每个字母换成字母表中相隔K的字母,将K递增1,如果K小于26,重复读取,否则停止,得到的25个结果中,其中有一个是原先的明文信息。但是若是不同字母按照不同的替换规则则很有难度。
2.3单码加密法
每个明文信息的所有字母随即替换,即每个字母按照不同规则替换成不同字母,26个字母的任意组合置换,从而达到 26!种可能。
2.4块替换加密法
把一块字母整体替换成另一块字母。
2.5多码替换加密法
使用多个单码秘药,每个密钥加密一个明文字母。第一个密钥加密第一个,第二个加密第二个,以此类推,用完了就循环使用。
3、变化加密方法
3.1栅栏加密
将明文信息写成对角线序列,将第一步写出的明文读入行序列
3.2简单分栏式变换加密
将明文信息一行一行地写入预订长度的矩形中,一列一列随机顺序读信息,得到的信息就是密文信息。这个只是将明文信息排成矩阵中的行序列,按随机顺序读取。
3.3多轮简单分栏式变换加密
将明文信息一行一行地写入预订长度的矩形中,一列一列随机顺序读信息,得到的信息就是密文信息,然后重复多次。。。
3.4Vernam加密法
也称一次性板,用随机的非重复字符集合作为输入密文,输入密文长度等于原信息明文长度。
过程:
按递增顺序把每个明文字母作为一个数字;
对输入密文的每个字母进行相同处理;
将明文中的每个字母和输入密文的相应字母相加;
如果和大于26,则减去26;
将和变成相应字母,从而得到输出密文
4、加密与解密
如果加密和解密使用的是相同的密钥,则是对称密钥加密,如果加密与解密用的是不同密钥,则是非对称密钥。
Diddie-Hellman密钥交换协议
过程:
首先确定两个大素数n和g,不必保密;
A方选择一个大随机数x,并计算a=g^x mod n,然后发a给B方;
B方选择另一个大随机数y,并计算b=g^y mod n,然后发b给A方;
计算秘密密钥K1:K1=b^x mod n,密钥K2:K2=a^y mod n
所以最后K1=(g^y mod n)^x mod n=g^xy mod n
K2=(g^x mod n)^y mod n=g^yx mod n
K1=K2
相关文章推荐
- 密码学常见基本概念-序列密码,一次一密
- 密码学常见基本概念-序列密码的概念及模型
- 密码学复习笔记1【基本概念与传统密码技术】
- 密码学笔记1-基本概念和常用加密算法
- 密码学基本概念(一)
- 几个基本的密码学概念
- 密码学的起源与基本概念
- zigbee基本概念及协议术语
- Oracle数据库的基本概念
- java的基本概念
- TF基本概念
- [知了堂学习笔记]_Java多线程(1)-- 基本概念并开始创建多线程程序
- Java 网络编程学习笔记(一)基本网络概念
- 异常的基本概念
- [转]传播效果研究基本概念百题
- 第一课: C++基本概念
- 套接字socket及C/S通信的基本概念
- 数据仓库与数据挖掘的一些基本概念
- LVM 学习总结(一)——基本概念及术语
- 数据结构与算法(Java描述)-6、栈的基本概念以及顺序栈的实现