一些加密机制
来源:互联网 发布:中国 中子弹 知乎 编辑:程序博客网 时间:2024/06/02 18:28
我们知道加密技术是信息安全的重要组成部分,
那么对加密技术的理解就显得很重要.所以要来比较几种不同
加密技术,更好的理解安全技术.
一.古典加密体制.
古典加密体制最基本的算法是替代算法和置换移位算法
替代算法:
最经典的凯撒加密:
就是后移N位实现,使用python(一种跨平台的脚本语言)实现凯撒加密:
Code.py:
#!/usr/bin/env pythonastring='abcdefghijklmnopqrstuvwxyz'alist=[i for i in range(0,26)]adict=dict(zip(astring,alist))print adictdef code(filename,outname): out=open(outname,'w') fd=open(filename) for i in fd: line='' for c in i: if c.isalpha(): line+=astring[(adict[c.lower()]+3)&] else: line+=c out.write(line) fd.close() out.close() code("/root/Desktop/f",'/root/Desktop/o')
维吉尼亚加密的实现:
Code2.py:
10.实现Vignere加密:
#!/usr/bin/env python
codekey=(21,4,2,19,14)
astring='abcdefghijklmnopqrstuvwx
alist=[i for i in range(0,26)]
adict=dict(zip(astring,alist))
def code(infile,outfile):
短语替代的加密:
Code3.py:
#!/usr/bin/env python
codekey="hapynewr"
alist=list('abcdefghijklmnopqrstuvwx
code=list('hapynewrbcdfgijklmoqstuv
print len(code)
adict=dict(zip(alist,code))
def code(filename,outname):
以上可以看出,古典密码的实现简单,那么安全性肯定不高,可以通过频度分析和简单的暴力穷举攻击.属于比较古典(朴素)的加密.
二.对称加密
发送方将明文和密钥经过处理后变为密文.接受方要想解密,则
需要使用加密算法的逆算法进行解密,也就需要事前知道密钥.
特点:
算法公开,计算量小,效率高
但是需要使用的密钥过多,密钥管理太难,不适合分布式应用
具体算法有:
DES, 3DES, RC,AES, Blowfish
在python中提供了crypt模块中有简单的DES应用实例.
三.非对称加密:
这类算法又称公开密钥加密算法,需要公钥和私钥
使用公钥加密时,只有对应的私钥才能解密,私钥加密,只用对应公钥解密,
过程:甲方生产一对密钥将一个用作公钥公开,得到公钥的乙方使用其私钥加密后给甲方,甲方在用和乙方对应的私钥解密.可以看出,其密钥管理大大容易了.而且消除了密钥交换过程.
原理:
A要和B发信,A和B都要有一对密钥
A的私钥保密,A的公钥告诉B,B的私钥保密,B的公钥 告诉A
A给B发信,A用B的公钥加密,A将密文给B
B用自己的私钥解密,其他人无法解密
主要算法:
RSA, Rabin, D-H
- 一些加密机制
- 加密机制
- EasyLon加密机制分析
- MD5+Salt加密机制
- 蓝光加密机制
- sip加密机制
- 公私钥加密机制
- Android中加密机制
- 客户端加密机制
- AES/RSA加密机制
- 加密机制理解
- 一些加密的协议
- 实战SSL安全加密机制
- ASP.NET 用户密码加密机制
- 关键(二):数据加密机制
- 短信加密机制的设计
- Androidhttp请求加密机制详解
- 天龙八部底层包加密机制
- 常见算法学习笔记
- css中字隐藏
- JDK动态代理
- 无奈啊……
- 第五章 多态性和静态初始化块
- 一些加密机制
- Linux中的log介绍(三)---内核日志
- 第八周实验报告2
- RedHat CentOS 添加新硬件的方法
- oracle rac 节点崩溃重装
- 模式设计
- 谁的穿针引线
- 遍历SD卡中的所有文件
- 我的时间管理——简单的Get Thing Down