密码学----基础概念(三)

来源:互联网 发布:3.0录音软件 编辑:程序博客网 时间:2024/06/14 14:57

非对称密钥加密算法

1、RSA算法
过程:
选择两个大素数P,Q,计算N=P*Q
选择一个公钥(加密密钥)E,使其不是(P-1)和(Q-1)的因子
选择私钥(解密密钥)D,满足条件:(D*E)mod (P-1)*(Q-1)=1
加密时,从明文PT计算密文CT如下:CT=PT^E mod N,将密文CT发送给接受方
解密时,从密文CT计算明文PT如下:PT=CT^D mod N

例子:
选择两个大素数P=47,Q=71,计算N=P*Q=3337
选择一个公钥(加密密钥)E,使其不是(P-1)=46和(Q-1)=70的因子,42和70的因子有:2、5、7、23,所以选E=79
选择私钥(解密密钥)D,满足条件:(D*E)mod (P-1)*(Q-1)=1,D可以取1019
加密时,从明文PT计算密文CT如下:CT=PT^E mod N,将密文CT发送给接受方,CT=1133^79 mod 3337
解密时,从密文CT计算明文PT如下:PT=CT^D mod N
2、MD5
2.1原理
第一步:填充
在原消息中增加填充位,目的是使原消息的长度等于一个值,这个值比512的倍数少64位。若原信息长度100位,则要填充512-64-100=348位。
第二步:增加长度
计算消息的原长,不包括填充位,这个消息原长表示为64位,添加到加进填充后的消息末尾,这时,整个消息就是512的倍数位。
第三步:将输入分成512位的块
第四步:初始化链接变量
第五步:处理块

SSH工作原理
SSH有三个子协议:握手协议、记录协议、警报协议。
握手协议是客户机与服务机用SSL连接通信时使用的第一个子协议,每个握手信息有三个字段:Type(1字节)、Length(3字节)、Content(1或多个字节),实际分四个阶段:
(1)建立安全能力
首先是客户机发给服务机的Client Hello信息,包括版本参数、随机数、session id、Cipher suite加密套、Compression method压缩方法,然后服务器响应并发回Server hello信息包含相同字段,但作用不同。
(2)服务器鉴别与密钥交换
服务器将数字证书和根CA的整个链发给客户机,使客户机能用服务器证书的服务器公钥鉴别服务器,然后客户机可以验证服务器发送的证书,保证服务器发送的所有参数可以接受
(3)客户机鉴别与密钥交换
如果服务器请求客户机数字证书而客户机没有,则客户机发送一个No certificate消息,然后由服务器决定是否继续,接着客户机生成48字节的预备秘密,用服务器的公钥加密,然后交给服务器
(4)完成
客户机改变加密规范,客户机完成,服务器改变加密规范,服务器完成。

记录协议
在客户机和服务器握手成功后起作用,提供两个服务:
保密性:使用握手协议定义的秘密密钥实现
完整性:握手协议还定义了共享秘密密钥(MAC),用于保证信息的完整性
过程:
分块:将应用信息分成小于或等于16KB的小块
压缩:小块还可以压缩,不能造成数据损失,要无损
增加MAC:用握手协议中建立的共享秘密密钥求出每个块的MAC信息鉴别码
加密:用秘密密钥将上一步的输出加密,可能会增加块的总长,但增量不超过1024字节
加头:在加密块中加头,包含内容类型(8位)、主版本(8位)、次版本(8位)、压缩长度(16位)

警报协议
客户机和服务器发现错误时,向对方发一个警报信息,如果是致命错误,则双方立即关闭SSL连接,还会删除相关的会话号、秘密和密钥等,如果不严重,则不终止连接,处理错误和继续。
每个警报信息有两个字节,一字节表示错误类型,一字节指定实际错误

原创粉丝点击