一些加密机制

我们知道加密技术是信息安全的重要组成部分,

那么对加密技术的理解就显得很重要.所以要来比较几种不同

加密技术,更好的理解安全技术.

 

一.古典加密体制.

古典加密体制最基本的算法是替代算法和置换移位算法
替代算法:
最经典的凯撒加密:
就是后移N位实现,使用python(一种跨平台的脚本语言)实现凯撒加密:
 
Code.py:
 
#!/usr/bin/env python
astring='abcdefghijklmnopqrstuvwxyz'
alist=[i for i in range(0,26)]
adict=dict(zip(astring,alist))
print adict
def 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
yz'
alist=[i for i in range(0,26)]
adict=dict(zip(astring,alist))


def code(infile,outfile):
 
   num=0
 
   out=open(outfile,'w')
 
   fd=open(infile)
 
   for i in fd:
 
      line=''
 
      for c in i:
 
            if c.isalpha():
 
                  num+=1
 
                  line+=astring[(adict[c.lower()]+codekey[num%5-1])&]
 
            else:
 
                  line+=c
 
      out.write(line)
 
   fd.close()
 
   out.close()              
      
code("/root/Desktop/f",'/root/Desktop/o')

 

短语替代的加密:

 

Code3.py:

 

 

#!/usr/bin/env python
codekey="hapynewr"
alist=list('abcdefghijklmnopqrstuvwx
yz')
code=list('hapynewrbcdfgijklmoqstuv
xz')
print len(code)
adict=dict(zip(alist,code))

def code(filename,outname):
 
   out=open(outname,'w')
 
   fd=open(filename)
 
   for i in fd:
 
      line=''
 
      for c in i:
 
            if c.isalpha():
 
                  line+=(adict[c.lower()])
 
            else:
 
                  line+=c
 
      out.write(line)
 
   fd.close()
 
   out.close()              
      
code("/root/Desktop/f",'/root/Desktop/o')

 

以上可以看出,古典密码的实现简单,那么安全性肯定不高,可以通过频度分析和简单的暴力穷举攻击.属于比较古典(朴素)的加密.

 

 

二.对称加密

发送方将明文和密钥经过处理后变为密文.接受方要想解密,则

需要使用加密算法的逆算法进行解密,也就需要事前知道密钥.

特点:

算法公开,计算量小,效率高

但是需要使用的密钥过多,密钥管理太难,不适合分布式应用

具体算法有:

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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值