网络安全-数据加密算法详解

一、数据存储和传输存在的风险

       

二 、常见的加密算法

 1. base64

  Base64编码,是我们程序开发中经常使用到的编码方法。它是一种基于用64个可打印字符来表示二进制数据的表示方法。它通常用作存储、传输一些二进制数据编码方法!也是MIME(多用途互联网邮件扩展,主要用作电子邮件标准)中一种可打印字符表示二进制数据的常见编码方法!它其实只是定义用可打印字符传输内容一种方法,并不会产生新的字符集!有时候,我们学习转换的思路后,我们其实也可以结合自己的实际需要,构造一些自己接口定义编码方式。好了,我们一起看看,它的转换思路吧!

Base64实现转换原理

    它是用64个可打印字符表示二进制所有数据方法。由于2的6次方等于64,所以可以用每6个位元为一个单元,对应某个可打印字符。我们知道三个字节有24个位元,就可以刚好对应于4个Base64单元,即3个字节需要用4个Base64的可打印字符来表示。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中一般有所不同。但是,我们经常所说的Base64另外2个字符是:“+/”。这64个字符,所对应表如下。

编号 字符   编号 字符   编号 字符   编号 字符
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /

    转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。数据不足3byte的话,于缓冲区中剩下的bit用0补足。然后,每次取出6个bit,按照其值选择
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
中的字符作为编码后的输出。不断进行,直到全部输入数据转换完成。

    如果最后剩下两个输入数据,在编码结果后加1个“=”;如果最后剩下一个输入数据,编码结果后加2个“=”;如果没有剩下任何数据,就什么都不要加,这样才可以保证资料还原的正确性。

    编码后的数据比原始数据略长,为原来的4/3。无论什么样的字符都会全部被编码,因此不像Quoted-printable 编码,还保留部分可打印字符。所以,它的可读性不如Quoted-printable编码! 

文本 M a n
ASCII编码 77 97 110
二进制位 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0
索引 19 22 5 46
Base64编码 T W F u

     M的Ascii码是77,前六位对应值为19,对应base64字符是T,如此类推。其它字符编码就可以自动转换得到!我们看看另外不是刚好是3个字节的情况! 

文本(1 Byte) A    
二进制位 0 1 0 0 0 0 0 1                                
二进制位(补0) 0 1 0 0 0 0 0 1 0 0 0 0                        
Base64编码 Q Q = =
文本(2 Byte) B C  
二进制位 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1     x x x x x x
二进制位(补0) 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 x x x x x x
Base64编码 Q k M  =

 2. 单向散列函数(MD5 加密)

1)、MD5概念

      MD5,全名Message Digest Algorithm 5 ,中文名为消息摘要算法第五版,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。上面这段话话引用自百度百科,我的理解MD5是一种信息摘要算法,主要是通过特定的hash散列方法将文本信息转换成简短的信息摘要,压缩+加密+hash算法的结合体,是绝对不可逆的。


2)、MD5计算步骤   

   MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

第一步、填充

      如果输入信息的长度(bit)对512求余的结果不等于448,就需要填充使得对512求余的结果等于448。填充的方法是填充一个1和n个0。填充完后,信息的长度就为N*512+448(bit);

第二步、记录信息长度

     用64位来存储填充前信息长度。这64位加在第一步结果的后面,这样信息长度就变为N*512+448+64=(N+1)*512位。

第三步、装入标准的幻数(四个整数)

     标准的幻数(物理顺序)是(A=(01234567)16,B=(89ABCDEF)16,C=(FEDCBA98)16,D=(76543210)16)。如果在程序中定义应该是(A=0X67452301L,B=0XEFCDAB89L,C=0X98BADCFEL,D=0X10325476L)。有点晕哈,其实想一想就明白了。

第四步、四轮循环运算

     循环的次数是分组的个数(N+1) 

   1)将每一512字节细分成16个小组,每个小组64位(8个字节)    
   2)先认识四个线性函数(&是与,|是或,~是非,^是异或) 


3.对称加密

对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:

DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。

3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。

AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;

AES

2000年10月,NIST(美国国家标准和技术协会)宣布通过从15种侯选算法中选出的一项新的密匙加密标准。Rijndael被选中成为将来的AES。 Rijndael是在 1999 年下半年,由研究员 Joan Daemen 和 Vincent Rijmen 创建的。AES 正日益成为加密各种形式的电子数据的实际标准。

美国标准与技术研究院 (NIST) 于 2002 年 5 月 26 日制定了新的高级加密标准 (AES) 规范。

算法原理

AES 算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES 使用几种不同的方法来执行排列和置换运算。

AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据

 

AES与3DES的比较

算法名称

算法类型

密钥长度

速度

解密时间(建设机器每秒尝试255个密钥)

资源消耗

AES

对称block密码

128、192、256位

1490000亿年

3DES

对称feistel密码

112位或168位

46亿年


4.非对称加密

常见的非对称加密算法如下:

RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;

DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准);

ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学

随着分解大整数方法的进步及完善、计算机速度的提高以及计算机网络的发展,为了保障数据的安全,RSA的密钥需要不断增加,但是,密钥长度的增加导致了其加解密的速度大为降低,硬件实现也变得越来越难以忍受,这对使用RSA的应用带来了很重的负担,因此需要一种新的算法来代替RSA。

1985年N.Koblitz和Miller提出将椭圆曲线用于密码算法,根据是有限域上的椭圆曲线上的点群中的离散对数问题ECDLP。ECDLP是比因子分解问题更难的问题,它是指数级的难度。

算法原理——椭圆曲线上的难题

 椭圆曲线上离散对数问题ECDLP定义如下:给定素数p和椭圆曲线E,对Q=kP,在已知P,Q 的情况下求出小于p的正整数k。可以证明由k和P计算Q比较容易,而由Q和P计算k则比较困难。

将椭圆曲线中的加法运算与离散对数中的模乘运算相对应,将椭圆曲线中的乘法运算与离散对数中的模幂运算相对应,我们就可以建立基于椭圆曲线的对应的密码体制。

例如,对应Diffie-Hellman公钥系统,我们可以通过如下方式在椭圆曲线上予以实现:在E上选取生成元P,要求由P产生的群元素足够多,通信双方A和B分别选取a和b,a和b 予以保密,但将aP和bP公开,A和B间通信用的密钥为abP,这是第三者无法得知的。

对应ELGamal密码系统可以采用如下的方式在椭圆曲线上予以实现:

将明文m嵌入到E上Pm点,选一点B∈E,每一用户都选一整数a,0<a<N,N为阶数已知,a保密,aB公开。欲向A送m,可送去下面一对数偶:[kB,Pm+k(aAB)],k是随机产生的整数。A可以从kB求得k(aAB)。通过:Pm+k(aAB)- k(aAB)=Pm恢复Pm。同样对应DSA,考虑如下等式:

K=kG  [其中 K,G为Ep(a,b)上的点,k为小于n(n是点G的阶)的整数]

不难发现,给定k和G,根据加法法则,计算K很容易;但给定K和G,求k就相对困难了。

这就是椭圆曲线加密算法采用的难题。我们把点G称为基点(base point),k(k<n,n为基点G的阶)称为私有密钥(privte key),K称为公开密钥(public key)。

 

ECC与RSA的比较

ECC和RSA相比,在许多方面都有对绝对的优势,主要体现在以下方面:

Ø  抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。

Ø  计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。

Ø  存储空间占用小。ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义。

Ø  带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无线网络领域具有广泛的应用前景。

 

ECC的这些特点使它必将取代RSA,成为通用的公钥加密算法。比如SET协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法。

下面两张表示是RSA和ECC的安全性和速度的比较:

 

攻破时间

(MIPS年)

RSA/DSA

(密钥长度)

ECC

密钥长度

RSA/ECC

密钥长度比

104

512

106

5:1

108

768

132

6:1

1011

1024

160

7:1

1020

2048

210

10:1

1078

21000

600

35:1

RSA和ECC安全模长得比较

 

 功能

Security Builder 1.2

BSAFE 3.0

163位ECC(ms)

1,023位RSA(ms)

密钥对生成

3.8

4,708.3

签名

2.1(ECNRA)

228.4

3.0(ECDSA)

认证

9.9(ECNRA)

12.7

10.7(ECDSA)

Diffie—Hellman密钥交换

7.3

1,654.0

RSA和ECC速

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
网络安全技术》复习课之习题部分 一、选择题 1. 以下( )不属于防火墙的功能。 A. 控制对特殊站点的访问 B. 过滤掉不安全的服务和非法用户 C. 防止雷电侵害 D. 监视Internet安全和预警 2. 常用的公开密钥(非对称密钥)加密算法有( )。 A. DES B. SED C. RSA D. RAS 3. 以下关于一个安全计算机网络系统功能的描述中,错误的是 ( )。 A. 身份识别 B. 保护数据完整性 C. 密钥管理 D. 自由访问 4. 以下关于计算机环境安全技术描述中,错误的是 ( )。 A. 计算机机房应有安全的供电系统和防火、防盗措拖 B. 不允许在计算机机房内吸烟及使用易燃易爆物质 C. 计算机机房应有保证机房安全的安全监控技术 D. 现在的计算机性能比较优良,因此计算机机房不需关心温度、湿度及灰尘问题 5. 黑客攻击的基本步骤有以下5步: j实施入侵 k上传程序,下载数据 l利用一些方法来保持访问 m搜集信息 n隐藏踪迹 请选出顺序正确的步骤( )。 A. nlkjm  B. mjkln  C. jklmn  D. kljmn 6. 下面有关网络病毒的传播方式中,哪一种是错误的( )。 A. 邮件附件 B. Web服务器 C. 软盘 D. 文件共享 7. ARP命令中参数-s的作用是( )。 A. 显示ARP命令帮助 B. 删除一个绑定 C. 绑定一个MAC地址和IP地址 D. 进行ARP攻击 8. 系统内置netstat命令中参数-a的作用是 ( )。 A. 表示按协议显示各种连接的统计信息,包括端口号 B. 表示显示活动的TCP连接并包括每个连接的进程ID C. 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口 D. 表示显示以太网发送和接收的字节数、数据包数等 9. 下面不属于入侵检测系统分类的是( )。 A. 基于主机型入侵检测系统 B. 基于网络型入侵检测系统 C. 基于代理型入侵检测系统 D. 基于病毒型入侵检测系统 10. 下列关于防火墙安全技术的描述中,错误的是( )。 A. 数据包过滤技术 B. 代理技术 C. 状态检查技术 D. 审计技术 11. 各种通信网和TCP/IP之间的接口是TCP/IP分层结构中的( )。 A. 数据链路层 B. 网络层 C. 传输层 D. 应用层 12. 下面不属于木马特征的是( )。 A. 自动更换文件名,难于被发现 B. 程序执行时不占太多系统资源 C. 不需要服务端用户的允许就能获得系统的使用权 D. 造成缓冲区的溢出,破坏程序的堆栈 13. 下面不属于端口扫描技术的是( )。 A. TCP connect()扫描 B. TCP FIN扫描 C. IP包分段扫描 D. Land扫描 14. 负责产生、分配并管理PKI结构下所有用户的证书的机构是( )。 A. LDAP目录服务器 B. 业务受理点 C. 注册机构RA D. 认证中心CA 15. 防火墙按自身的体系结构分为( )。 A. 软件防火墙和硬件防火墙   B. 包过滤型防火墙和双宿网关   C. 百兆防火墙和千兆防火墙   D. 主机防火墙和网络防火墙 16. 下面关于代理技术的叙述正确的是( )。 A. 能提供部分与传输有关的状态 B. 能完全提供与应用相关的状态和部分传输方面的信息 C. 能处理和管理信息 D. ABC都正确 17. 下面关于ESP传输模式的叙述不正确的是( )。 A. 并没有暴露子网内部拓扑 B. 主机到主机安全 C. IPSec的处理负荷被主机分担 D. 两端的主机需使用公网IP 18. 下面关于网络入侵检测的叙述不正确的是( )。 A. 占用资源少 B. 攻击者不易转移证据 C. 容易处理加密的会话过程 D. 检测速度快 19. 下面不属于入侵检测系统分类的是( )。 A. 基于主机型入侵检测系统 B. 基于网络型入侵检测系统 C. 基于代理型入侵检测系统 D. 基于病毒型入侵检测系统 20. 下面关于病毒的叙述正确的是( )。 A. 病毒可以是一个程序 B. 病毒可以是一段可执行代码 C. 病毒能够自我复制 D. ABC都正确 21. 最有效的保护E-mail的方法是使用加密签字,如( ),来验证E- mail信息。通过验证E- mail信息,可以保证信息确实来自发信人,并保证在传输过程没有被修改。 A. Diffie-Hellman B. Pretty Good Privacy(PGP) C. Key Distribution Center(KDC) D. IDEA 22. 黑客要想控制某些用户,需要把木马程序安装到用户的机器中,实际上安装的是() A. 木马的控制端程序 B. 木马的服务器端程序 C. 不用安装 D. 控制端、服务端程序都必需

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值