4计算d,使d=e-1(mod(n)),即ed≡1(mod(n))
5对每一密钥k=(n,p,q,d,e),
定义加密变换为Ek(x)=xemodn
定义解密变换为Dk(x)=ydmodn
6e,n是公钥,d是私钥。
两个素数p和q不再需要,应该丢弃,不要让任何人知道。
RSAExample
•1.选择素数:
p=17&q=11
•2.计算n=pq=17×11=187
•3.计算ø(n)=(p–1)(q-1)=16×10=160
•4.选择e:
gcd(e,160)=1;选择e=7
•5.确定d:
de=1mod160andd<160,d=23
•因为23×7=161=1×160+1
•6.公钥KU={7,187}
•7.私钥KR={23,17,11}
RSA的加解密为:
•给定消息M=88(88<187)
•加密:
C=MemodN
C=887mod187=11
•解密:
M=CdmodN
M=1123mod187=88
RSA安全性依据
RSA的安全性是基于加密函数Ek(x)=xe(modn)是一个单向函数,所以对攻击的人来说求逆计算不可行。
而Bob能解密的陷门是分解n=pq,知
φ(n)=(p-1)(q-1)。
从而用欧氏算法解出解密私
钥d.
(猜想:
攻破RSA与分解n是多项式等价的。
然而,这个猜想至今没有给出可信的证明!
!
!
)
例子
密钥的选取:
若Bob选择了p=101和q=113,
那么,n=11413,(n)=100*112=11200;
然而,11200=26*52*7,一个正整数e能用作加密指数,当且仅当e不能被2,5,7所整除。
事实上,Bob不会分解(n)而是用辗转相除法(欧式算法)来求得e,使(e,(n)=1)假设Bob选择了e=3533,那么用辗转相除法将求得d=e-1≡6597(mod11200),于是Bob的解密密钥d=6597.
Bob在一个目录中公开n=11413和e=3533,
加密解密:
现假设Alice想发送明文9726给Bob她计算
97263533(mod11413)=5761。
且在一个信道上发送密文5761,当Bob接收到密文5761时,他用他的秘密解密指数私钥d=6597进行解密57616597(mod11413)=9726
RSA的安全性是基于加密函数ek(x)=xe(modn)是一个单向函数,所以对别人来说求逆计算不可行,而Bob能解密的陷门是分解n=pq
知(n)=(p-1)(q-1)从而用欧氏算法解出解密私钥d.
链路加密
链路加密是传输数据仅在物理层前的数据链路层进行加密。
接收方是传送路径上的各台节点机,信息在每台节点机内都要被解密和再加密,依次进行,直至到达目的地。
使用链路加密装置能为某链路上的所有报文提供传输服务。
即经过一台节点机的所有网络信息传输均需加、解密,每一个经过的节点都必须有密码装置,以便解密、加密报文。
如果报文仅在一部分链路上加密而在另一部分链路上不加密,则相当于未加密,仍然是不安全的。
节点加密
与链路加密不同,节点加密不允许消息在网络节点以明文形式存在,它先把收到的消息进行解密,然后采用另一个不同的密钥进行加密,这一过程是在节点上的一个安全模块中进行。
即在节点处采用一个与节点机相连的密码装置,密文在该装置中被解密并被重新加密,明文不通过节点机,避免了链路加密关节点处易受攻击的缺点。
节点加密要求报头和路由信息以明文形式传输,以便中间节点能得到如何处理消息的信息。
因此这种方法对于防止攻击者分析通信业务是脆弱的。
端对端加密
采用端--端加密是在应用层完成,即传输前的高层中完成。
端到端加密允许数据在从源点到终点的传输过程中始终以密文形式存在。
采用端到端加密(又称脱线加密或包加密),消息在被传输时到达终点之前不进行解密,中间节点处不以明文的形式出现。
因为消息在整个传输过程中均受到保护,所以即使有节点被损坏也不会使消息泄露。
☞对称密码和非对称密码解决的是保密性
☞消息认证和数字签名解决的是信息的完整性、抗否认性
☞保密和认证同时是信息系统安全的两个方面。
但它们是两个不同属性的问题,认证不能自动提供保密性,而保密性也不能自然提供认证功能。
产生认证符的方法有三种:
(1)信息加密函数(Messageencryption)
用完整信息的密文作为对信息的认证。
(2)信息认证码MAC(MessageAuthenticationCode)
是对信源消息的一个编码函数,即消息摘要函数。
(3)散列函数(HashFunction)
是一个公开的函数它将任意长的信息映射成一
个固定长度的信息。
信息认证码(MAC)
•消息认证是使预定的消息接收者,能够检验收到的消息是否真实的方法。
检验内容应包括:
(1)证实报文的源和宿
消息认证使接收者能识别消息的源和意定的信宿
(2)内容的真伪
报文内容是否曾受到偶然的或有意的篡改
(3)时间性
报文的序号和时间栏
•问题:
对称密码体制的加密可以提供认证,为什么还要使用独立的消息认证
1.一些应用要求将相同的消息对许多终端进行广播,仅使用一个终端负责消息的认证。
这种方法既经济又实用负责认证的终端有相应的密钥并执行认证操作如果认证不正确,其它终端将收到它发来的告警。
2.接收方有繁重的任务,无法负担大量的解密任务
3.有一些应用只关心信息的完整性,而不需要保密性
4.认证与保密的分离能够提供结构上的灵活性。
5.有些应用场合,期望在超过接收时间后,继续延长保护期限同时允许处理消息的内容,如果使用加密解密后保护就失效了,这样消息只能在传输过程中得到完整性保护但在目标系统中却办不到。
所谓电子签名,是指数据电文中以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据。
通俗点说,电子签名就是通过密码技术对电子文档的电子形式的签名,并非是书面签名的数字图像化。
•电子签名与数字签名、电子签章
•依附在电子文件并与其逻辑相关,可用以辨识电子文件签署者身份及表示签署者同意电子文件内容。
电子签章(安全电子签章)必须以符合特定要求安全程序来制作,确保签章的安全。
以有别于一般的电子签章,并赋予法律上视为签名或盖章的效力。
保证文件的完整性,确保文件的真实性、可靠性和不可抵赖性;电子签章应该是电子签名的重要组成部分之一。
•电子印章分为电子公章和电子名章
目前提出的两类数字签名体制或两类数字签名函数
•直接数字签名仲裁数字签名
直接数字签名DDS
(1)A→B:
EKRa[M]
提供了认证与签名
只有A具有KRa进行加密;传输中无法被篡改
需要某些格式信息/冗余度,任何第三方可以用KUa验证签名
(1’)A→B:
EKUb[EKRa(M)]
提供了保密(KUb)认证与签名(KRa)
(2)A→B:
M||EKRa[H(M)]
提供认证及数字签名
H(M)受到密码算法的保护,只有A能够生成EKRa[H(M)]
(2’)A→B:
EK[M||EKRa[H(M)]]
提供保密性认证和数字签名
直接数字签名的缺点
验证模式依赖于发送方的保密密钥,发送方要抵赖发送某一消息时可能会声称其私有密钥丢失或被窃从而他人伪造了他的签名。
通常需要采用与私有密钥安全性相关的行政管理控制手段来制止或削弱这种情况,但威胁在某种程度上依然存在。
改进的方式例如可以要求被签名的信息包含一个时间戳、日期与时间并要求将已暴露的密钥报告给一
个授权中心。
X的某些私有密钥确实在时间T被窃取,敌方可以伪造X的签名及早于或等于时间T的时间戳
仲裁数字签名
通常的做法是所有从发送方X到接收方Y的签名消息,首先送到仲裁者A,A将消息及其签名进行一系列测试,以检查其来源和内容;然后将消息加上日期并与已被仲
裁者验证通过的指示一起发给Y。
仲裁数字签名技术
(a)单密钥加密方式仲裁者可以看见消息
(1)X→A:
M||EKxa[IDx||H(M)]
(2)A→Y:
EKay[IDx||M||EKxa[IDx||H(M)]||T]
X与A之间共享密钥Kxa;Y与A之间共享密钥Kay
X准备消息M,计算其散列码H(M),用X的标识符IDx和散列值构成签名,并将消息及签名经Kxa加密后发送给A
A解密签名:
用H(M)验证消息M,然后将IDx‖M签名和时间戳一起经Kay加密后发送给Y
Y解密A发来的信息,并可将M和签名保存起来
单密钥加密方式仲裁者不可以看见消息
(1)X→A:
IDx||EKxy[M]||EKxa[IDx||H(EKxy[M])]
(2)A→Y:
EKay[IDx||EKxy[M]||EKxa[IDx||H(EKxy[M])]||T]
在这种情况下X与Y之间共享密钥Kxy;X将标识符IDx,密文EKxy[M]以及对IDx和密文消息的散列码用Kxa加密后形成签名发送给A
A解密签名用散列码验证消息这时A只能验证消息的密
文而不能读取其内容;然后A将来自X的所有信息加上时间戳
并用Kay加密后发送给Y。
(a)和(b)共同存在一个共性问题:
A和发送方联手可以否认签名的信息
A和接收方联手可以伪造发送方的签名
(c)双密钥加密方式仲裁者不可以看见消息
(1)X→A:
IDx||EKRx[IDx||EKUy(EKRx[M])]
(2)A→Y:
EKRa[IDx||EKUy[EKRx[M]]||T]
X对消息M双重加密,首先用X的私有密钥KRx,然后用Y的公开密钥KUy形成一个签名的保密的消息;然后将该信息以及X的标识符一起用KRx签名后与IDx一起发送给A。
这种内部双重加密的消息对A以及对除Y以外的其它人都是安全的,A检查X的公开/私有密钥对是否仍然有效,并将包含IDx双重加密的消息和时间戳构成的消息用KRa签名后发送给Y。
本模式比上述两个模式具有以下好处:
1在通信之前各方之间无须共享任何信息从而避免了联手作弊
2即使KRx暴露只要KRa未暴露不会有错误标定日期的消息被发送
3从X发送给Y的消息的内容对A和任何其他人是保密的
基于RSA的数字签名
•签名方:
使用散列函数生成信息的摘录使用自己的密钥对摘录加密形成签将信息和对应的签名交给验证方
验证方:
使用对方的公钥对签名进行解密以同样的方法对信息生成摘录
比较通过解密和生成获得的摘录以确认签名的正确
数字信封(DIGITALENVELOPE)
单钥体制:
密钥分发困难;高效;数据的加密,对数据进行加密的密钥必须经常更换。
公钥体制:
加解密时间长;灵活;密钥的加密
数字信封解决两个难题:
取长补短
目的:
利用数据接收者的公钥来封装保护加密数据的密钥。
AB:
EKUb[Ks]||EKs[M]保密性
AB:
M||EKRa[H(M)]真实性
AB:
EKUb[M||EKRa[H(M)]]防止假冒
AB:
M||EKRa[H(M)]||EKRas[T||IDA||KUa]证书
SMTP协议
SMTP协议是最早出现的,也是被普遍使用的最基本的Internet邮件服务协议。
协议规定了客户与服务器MTA之间双向通信的规则和信封信息的传递。
SMTP工作在两种情况下:
一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。
起初,使用SMTP服务不需要额外的身份验证。
但随着垃圾邮件越来越多,现在的SMTP服务向接收邮件的POP服务看齐了,同样需要身份验证,这在一定程度上避免了垃圾邮件。
SMTP使用的TCP端口25,是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF(回车换行)结束。
IMAP4协议
与POP3的比较:
POP3提供了快捷的邮件下载服务,用户可以把邮箱里的信下载到PC上进行离线阅读,并可以选择将邮件从服务器上删除。
用户在任何时候都可阅读已经下载的邮件。
安全电子邮件的生成
下图:
安全电子邮件的解析:
✍下图
(1)HTTPS采用的是什么原理实现安全通信的?
✍
(2)哪些设置可以实现WEB服务器的安全访问?
✍(3)客户端数字证书可通过哪些方式获得?
SET协议简介
SET协议(SecureElectronicTransaction,安全电子交易)是1997年6月由VISA和MasterCard两大信用卡公司和IBM、Microsoft等许多大公司联合推出的用于因特网事务处理的一种标准,用来规范通信协议、请求信息的格式、数据类型的定义等。
SET协议是一种基于信用卡的付款机制。
SET协议的组成:
SET业务描述SET程序员指南SET协议描述
SET系统的组成:
电子钱包商店服务器支付网关认证中心软件
支付网关(PaymentGateway)
银行金融网络系统和Internet网络之间的接口,是由银行操作的将Internet上传输的数据转换为金融机构内部数据的一组服务器设备,或由指派的第三方处理商家支付信息和顾客的支付指令。
SET的工作流程
1)商品的浏览、选择,下订单并选择付款方式。
SET开始介入
(2)消费者必须对订单和付款指令进行数字签名,同时利用双签名技术保证商家看不到消费者的账号信息,银行看不到订购信息。
(3)商店接受订单后,向消费者所在银行请求支付认可。
信息通过支付网关到收单银行,再到电子货币发行公司确认。
批准交易后,返回确认信息给在线商店。
(4)商店发货或提供服务,并通知收单银行将钱从消费者的账号转移到商店账号,或通知发卡银行请求支付。
SET的主要安全技术数字证书数字信封双签名
双签名技术产生过程:
下
SET标准的安全程度
安全程度很高,它结合了数据加密标准(DES)、RSA算法、加密套接协议层(SSL)和安全超文本传输协议(S—HTTP),为每一项交易都提供了多层加密。
采用信息摘要技术保证信息的完整性
采用双重签名技术保证交易双方的身份认证
(数字证书验证9次,数字签名验证6次,证书传递7次,5次签名、4次对称加密和4次非对称加密)
SET协议的目标
(1)保证信息传输的安全性。
防止数据被黑客或被内部人员窃取。
(2)保证电子商务参与者信息的相互隔离。
客户的资料加密或打包后通过商家到达银行,但是商家不能看到客户的账户和密码信息。
(3)解决多方认证问题。
不仅要对消费者的信用卡认证,而且要对在线商店的信誉程度认证,同时还有消费者、在线商店与银行间的认证。
(4)保证网上交易的实时性,使所有的支付过程都是在线的。
(5)具有兼容性和互操作功能,可以运行在不同的硬件和操作系统平台上。
SET协议的缺陷
售后服务:
协议没有说明收单银行给在线商店付款前,是否必须收到消费者的货物接受证书。
否则的话,在线商店提供的货物不符合质量标准,消费者提出疑义,责任由谁承担。
消费者人的身份认证:
协议没有担保“非拒绝行为”,这意味着在线商店没有办法证明订购是不是由签署证书的消费者发出的。
数据的处理:
SET技术规范没有提及在事务处理完成后,如何安全地保存或销毁此类数据,是否应当将数据保存在消费者、在线商店或收单银行的计算机里。
这些漏洞可能使这些数据以后受到潜在的攻击。
步骤烦琐:
完成一个SET协议交易的过程中,需验证电子证书9次,验证数字签名6次,传递证书7次,进行5次签名、4次对称加密和4次非对称加密。
花费1.5-2分钟甚至更长时间。
国际流行的电子商务所采用的安全协议主要有:
基于信用卡交易的安全电子协议(SecureElectronicTransaction,SET)
安全HTTP(S-HTTP)协议
安全电子邮件协议(PEM、S/MIME等)
安全套接层协议(SecureSockets Layer,SSL)
在Internet网上利用Ipsec标准建设虚拟专用网,利用VPN为企业、政府提供一些基本的安全服务
SSL的工作原理
SSL的服务器端验证使用户获得服务器信息;
SSL的客户端验证使服务器获得用户的个人信息;
SSL的局限性
优点:
几乎所有操作系统上的Web浏览器、服务器均支持SSL协议;
使用该协议便宜、开发成本低;
缺点
SSL建立在RSA基础上,由于受出口的限制,长度仅限于512位以下;
只保证传输过程的安全,无法知道在传输过程中是否受到黑客的攻击。
SSL产品的出口受到美国国家安全局的限制,美国政府只允许加密密钥为40位以下的算法出口,而美国的商家一般都使用128位的SSL,致使其他国家很难真正在电子商务中充分利用SSL。
SSL协议提供的服务总结
1)采用数字证书进行双端实体认证,认证用户和服务器,确保数据发送到正确的客户机和服务器;
2)用非对称加密算法进行密钥协商,用对称加密算法加密数据以防止数据中途被窃取;
3)通过计算数字摘要MAC来维护数据的完整性。
防火墙的基本规则
NO规则:
一切未被允许的就是禁止的
YES规则:
一切未被禁止的就是允许的
PGP功能概要: