密码算法与协议3_密钥的确认

合集下载

网络安全技术与实践第二版课后答案

网络安全技术与实践第二版课后答案

网络安全期末复习题型:1、选择、判断、简答(45%)2、分析题(55%)注:如有发现错误,希望能够提出来。

第一章引言一、填空题1、信息安全的3个基本目标是:保密性、完整性和可用性。

此外,还有一个不可忽视的目标是:合法使用。

2、网络中存在的4种基本安全威胁有:信息泄漏、完整性破坏、拒绝服务和非法使用。

3、访问控制策略可以划分为:强制性访问控制策略和自主性访问控制策略。

4、安全性攻击可以划分为:被动攻击和主动攻击。

5、X.800定义的5类安全服务是:认证、访问控制、数据保密性、数据完整性、不可否认性。

6、X.800定义的8种特定的安全机制是:加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制和公证。

7、X.800定义的5种普遍的安全机制是:可信功能度、安全标志、事件检测、安全审计跟踪和安全恢复。

二、思考题2、基本的安全威胁有哪些?主要的渗入类型威胁是什么?主要的植入类型威胁时什么?请列出几种最主要的威胁。

答:基本的安全威胁有:信息泄露、完整性破坏、拒绝服务、非法使用。

主要的渗入类型威胁有:假冒、旁路、授权侵犯。

主要的植入威胁有:特洛伊木马、陷门最主要安全威胁:(1)授权侵犯(2)假冒攻击(3)旁路控制(4)特洛伊木马或陷阱(5)媒体废弃物(出现的频率有高到低)4.什么是安全策略?安全策略有几个不同的等级?答:安全策略:是指在某个安全区域内,施加给所有与安全相关活动的一套规则。

安全策略的等级:1安全策略目标;2机构安全策略;3系统安全策略。

6.主动攻击和被动攻击的区别是什么?请举例说明。

答:区别:被动攻击时系统的操作和状态不会改变,因此被动攻击主要威胁信息的保密性。

主动攻击则意在篡改或者伪造信息、也可以是改变系统的状态和操作,因此主动攻击主要威胁信息的完整性、可用性和真实性。

主动攻击的例子:伪装攻击、重放攻击、消息篡改、拒绝服务。

被动攻击的例子:消息泄漏、流量分析。

9、请画出一个通用的网络安全模式,并说明每个功能实体的作用。

国密算法国家商用密码算法简介)

国密算法国家商用密码算法简介)

国家商用密码算法简介密码学是研究编制密码和破译密码的技术科学,起源于隐秘消息传输,在编码和破译中逐渐发展起来。

密码学是一个综合性的技术科学,与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。

密码学的基本思想是对敏感消息的保护,主要包括机密性,鉴别,消息完整性和不可否认性,从而涉及加密,杂凑函数,数字签名,消息认证码等。

一.密码学简介密码学中应用最为广泛的的三类算法包括对称算法、非对称算法、杂凑算法。

1.1 对称密码对称密码学主要是分组密码和流密码及其应用。

分组密码中将明文消息进行分块加密输出密文区块,而流密码中使用密钥生成密钥流对明文消息进行加密。

世界上应用较为广泛的包括DES、3DES、AES,此外还有Serpent,Twofish,MARS和RC6等算法。

对称加密的工作模式包括电码本模式(ECB 模式),密码反馈模式(CFB 模式),密码分组链接模式(CBC 模式),输入反馈模式(OFB 模式)等。

1.2 非对称密码公钥密码体制由Diffie和Hellman所提出。

1978年Rivest,Shamir和Adleman提出RAS密码体制,基于大素数分解问题。

基于有限域上的离散对数问题产生了ElGamal密码体制,而基于椭圆曲线上的离散对数问题产生了椭圆曲线密码密码体制。

此外出现了其他公钥密码体制,这些密码体制同样基于困难问题。

目前应用较多的包括RSA、DSA、DH、ECC等。

1.3杂凑算法杂凑算法又称hash函数,就是把任意长的输入消息串变化成固定长的输出串的一种函数。

这个输出串称为该消息的杂凑值。

一个安全的杂凑函数应该至少满足以下几个条件。

1)输入长度是任意的;2)输出长度是固定的,根据目前的计算技术应至少取128bits长,以便抵抗生日攻击;3)对每一个给定的输入,计算输出即杂凑值是很容易的;4)给定杂凑函数的描述,找到两个不同的输入消息杂凑到同一个值是计算上不可行的,或给定杂凑函数的描述和一个随机选择的消息,找到另一个与该消息不同的消息使得它们杂凑到同一个值是计算上不可行的。

SSLTLS协议详解(上):密码套件,哈希,加密,密钥交换算法

SSLTLS协议详解(上):密码套件,哈希,加密,密钥交换算法

SSLTLS协议详解(上):密码套件,哈希,加密,密钥交换算法本⽂转载⾃1.作为⼀名安全爱好者,我⼀向很喜欢SSL(⽬前是TLS)的运作原理。

理解这个复杂协议的基本原理花了我好⼏天的时间,但只要你理解了底层的概念和算法,就会感觉整个协议其实很简单。

在学习SSL运作原理的过程中,我获益匪浅。

回想起在⼤学期间学到的密码学,那段时间学习它们可是⼀件很⽆聊的事。

现在,我开始明⽩⽼师为什么要让我学习加密的算法,因为密码学可以让我们的⽣活变得更加轻松。

在这⾥,我想分享我所学到的⼀切,当然,我希望这对你能有所帮助。

我们就此开始吧。

的历史在了解SSL的历史时,有必要提⼀下Mozilla Foundation。

说到Mozilla,⾸先我们想到的是他们著名的浏览器Firefox。

根据各种消息来源来看,Firefox是继Chrome和Safari之后最受欢迎的浏览器。

但Firefox杰出的前⾝是,在90年代它是互联⽹⽤户中最受欢迎的浏览器。

尽管这样,在微软推出了Internet Explorer之后,Netscape的时代也就随之结束了,之后他们便建⽴了著名的Mozilla基⾦会,它仍然在成长。

1994年,Netscape为Netscape Navigator浏览器研发了SSL。

其作⽤主要是为了攻击。

后来,随着互联⽹可访问性的增加,银⾏开始利⽤互联⽹进⾏交易。

当时安全性是⼀个很重要的问题,IETF (互联⽹⼯程任务组),也就是⼀群标准化互联⽹协议的⼈,他们研发属于⾃⼰的协议版本来标准化SSL,这是在1999年,现在该协议被称为TLS(传输层安全性),它的最新版本是TLS 1.3。

3.⾸先,在深⼊研究这个话题之前,我们需要对⼏件事情有⼀个基本的了解。

最重要的⼀个是密码学。

理解SSL您不需要成为密码学专家,但基本的了解是必要的。

我们接下来会在这⾥讨论基础知识。

已经知道⾮对称和对称密钥加密的朋友们可以直接跳过本节进⼊下⼀部分。

密码协议

密码协议
p



1)用户U随机选取整数 n ,1≤ n U≤n. U 2)用户U计算 n p modp,并将结果传送给用 户V。 3)用户V随机选取整数 n ,1≤ n V ≤n. V 4)用户V计算 p modp,并将结果传送给用 n 户U。 5)用户U计算
U
V
k n ( n P ) mod p
p
1 2 w
i
i
1
2
w
1
2
w
p
1
2
t 1
p

3)对1 i w ,D计算 y a ( x ) 其中
i i
a ( x ) ( k a x ) mod p
j j 1 j
t 1

1 4)D将 y i 秘密地分配给 p , i w
i


在Shamir的(t,w)门限方案中,假设t个参 与者 P , P ,..., P想要重建密钥k,则他们都给 1 出自己的 x 和 y , j t 由于 y a ( x ) 。
…………………………………………………………..
t 1 i2
k a x a x ... a x
2 1 it 2 it t 1
t 1 it
y
it
(9.1)

上述线性方程组写成矩阵其系数矩阵A是 det( Vandermonde矩阵, A ) ( x x ) mod p
u
V
V
U
U
V

Diffie-Hellman密钥交换协议的安全性主要是 基于有限域上离散对数问题的难解性。它也可推 广到椭圆曲线上。 椭圆曲线上Diffie-Hellman密钥交换协议描述 如下: 设E是有限域 Z 上的椭圆曲线,P∈E并且P 的阶足够大使得由P生成的循环群上的离散对数 问题是难解性。设n是点P的阶。E和P公开 .

密码学算法——精选推荐

密码学算法——精选推荐

密码学算法1. 密码学概述基本认知1. 科学密码学是科学、有严格的规范,设计密码学算法需要具备深厚的数学知识2. 公开密码学算法的实现原理是公开的,经过长时间的考验3. 相对安全计算机处理速度越来越快,某个密码学算法的数学基础可能受到挑战,现阶段安全密码算法,未来可能就不安全了4. 攻击⽅法多样⼤部分密码学算法需要秘钥,最简单的破解⽅法就是获取秘钥(暴⼒破解、彩虹表等)5. 应⽤标准未来正确使⽤密码学算法,并依据标椎使⽤(⽐如:PKCS),可以不了解密码学算法原理,但必须掌握应⽤标准6. 不⽐具备很强数学知识很多密码学算法并⾮计算机专家创建,⽽是数学家.(不妨碍我们使⽤密码学算法)7. 解决特定问题每种算法都有应⽤场景,解决特定的问题⽬标1. 机密性信息在存储,运输、处理过程中的安全保密,要求信息不会泄露给未经授权的⼈.对称加密算法和公开秘钥算法都能保护机密性2. 完整性接受⽅接受到的信息就是发送⽅发送的原始信息,如数据被篡改,接受⽅有策略数据被篡改,那传输的数据就具备完整性.在密码学中,主要使⽤消息验证码(MAC)算法保证完整性3. 不可抵赖性在密码学中,使⽤数字签名技术避免抵赖4. ⾝份验证通信双⽅(发送⽅、接收⽅)必须确保对端就是通信对象.在密码学中,⼀般使⽤数字签名确认⾝份常⽤密码库1. MIRACL由Shamus软件公司开发,包括了:RSA、AES、DSA、ECC和Diffie-Hellman秘钥交换算法2. CryptoAPI微软在Windows中的⼀个安全加密应⽤框架密码应⽤程序接⼝,密码服务提供者模块3. OpenSSL开放源代码的软件库包,三个只要的功能部分:SSL协议库、应⽤程序以及密码算法库2. 密码学算法分类类型哈希算法(Hash)1. 国内:SM32. 国际:MD5、SHA-1、SHA-2、SHA-33. 说明:SM3的256位保密强度⾼于MD5对称加密算法1. 国内:SM1、SM4、ZUC2. 国际:DES、3DES、AES3. 说明:SM1的128位保密强度和性能与AES相当,SM4的128位已升级为国际标准公开秘钥算法1. 国内:SM22. 国际:RSA、ECC3. 说明:SM2的256位基于ECC算法,安全性⽐RSA1024有明显优势随机数类型1. 真正的随机数⽣成器硬件⽣成效率⾼、随机性、不可预测性、不可重现性需要物理设备获取2. 伪随机数⽣成器软件⽣成效率⾼、随机性通过算法获取3. 密码学伪随机数⽣成器软件⽣成效率⾼、随机性、不可预测性⽤于密码学⼯作原理1. ⽣成器内部维护⼀个状态(internal state),其数值来源于外部,成为熵:动态时间、温度、声⾳变化等2. 伪随机数内部状态来源模拟的数值,称为种⼦(seed)可⽣成密码学随机数的算法1. 块密码算法CTR模式:对称加密算法2. 摘要函数:单向性3. 流密码算法:对称加密算法⽤途1. 密钥对称加密算法、公开密钥算法、MAC算法都会⽤到密钥,密钥本质上是⼀个随机数2. 初始化向量(IV)块密码算法中很多迭代模式会使⽤(IV)3. nonce块密码算法中的CTR模式、AEAD加密模式也会⽤到nonce4. salt基于⼝令的加密算法会⽤到,通过salt⽣成⼀个密钥Hash函数加密基元1. 基于密码学Hash算法产⽣的其他密码算法:MAC消息验证码、伪随机数⽣成器、基于⼝令的加密算法、数字签名等等Hash特性1. 摘要/散列/指纹=hash(消息)2. 相同的消息获得相同摘要值、速度快、单向性(不可逆)、原始消息变化摘要值也会变化、不同摘要值不同Hash算法⽤途1. ⽂件⽐较2. ⾝份校验Hash算法分类1. MD5算法:MD5、输出值长度:128⽐特、输⼊值最⼤长度:⽆限制、说明:实践中已经产⽣碰撞,理论上不具备弱抗碰撞性2. SHA-1算法:SHA-1、输出值长度:160⽐特、输⼊值最⼤长度:2的64次⽅减⼀⽐特、说明:实践中已经产⽣碰撞3. SHA-2算法:SHA-256、输出值长度:256⽐特、输⼊值最⼤长度:2的64次⽅减⼀⽐特、说明:安全使⽤算法:SHA-512、输出值长度:512⽐特、输⼊值最⼤长度:2的128次⽅减⼀⽐特、说明:安全使⽤算法:SHA-224、输出值长度:224⽐特、输⼊值最⼤长度:2的64次⽅减⼀⽐特、说明:安全使⽤算法:SHA-384、输出值长度:384⽐特、输⼊值最⼤长度:2的128次⽅减⼀⽐特、说明:安全使⽤4. SHA-3算法:SHA3-256、输出值长度:256⽐特、输⼊值最⼤长度:2的64次⽅减⼀⽐特、说明:安全使⽤算法:SHA3-512、输出值长度:512⽐特、输⼊值最⼤长度:2的128次⽅减⼀⽐特、说明:安全使⽤算法:SHA3-224、输出值长度:224⽐特、输⼊值最⼤长度:2的64次⽅减⼀⽐特、说明:安全使⽤算法:SHA3-384、输出值长度:384⽐特、输⼊值最⼤长度:2的128次⽅减⼀⽐特、说明:安全使⽤对称加密算法原理1. 密⽂=E(明⽂、算法、秘钥)2. 明⽂=D(密⽂、算法、秘钥)3.分类1. 块密码算法:DES、3DES、AES2. 流密码算法:RC4模式1. ECB(Electronic Codebook)、特点:运算快速,⽀持并⾏处理,需要填充、说明:不推荐使⽤2. CBC(Cipher Block Chaining)、特点:⽀持并⾏处理,需要填充、说明:推荐使⽤3. CFB(Cipher Feedback)、特点:⽀持并⾏处理,不需要填充、说明:不推荐使⽤4. OFB(Output Feedback)、特点:迭代运算使⽤流密码模式,不需要填充、说明:不推荐使⽤5. CTR(Counter)、特点:迭代运算使⽤流密码模式,⽀持并⾏处理,不需要填充、说明:推荐使⽤6. XTS(XEX-based tweaked-codebook)、特点:不需要填充、说明:⽤于本地硬盘存储解决⽅案中标准1. 填充标准:明⽂长度必须是分组长度的倍数,如不是倍数,则必须有填充机制2. PKCS#7填充:可处理的分组长度是1到255个字节3. AES算法使⽤标准,⽐如:AES-128-CBC-PKCS#7,其中秘钥长度128,分组模式CBC,填充标准PKCS#7,AES算法默认分组128bit消息验证码Hash算法能够完成密码学⽬标之⼀的完整性校验,但却不能避免消息被篡改,为避免消息被篡改,需要⽤到消息验证码.消息验证码⾮常重要,⼀般结合加密算法⼀起使⽤消息验证码的模型:MAC值 = mac(消息、密钥)MAC⼀般和原始消息⼀起传输,原始消息可以选择加密,也可以选择不加密,通信双⽅会以相同的⽅式⽣成MAC值,然后进⾏⽐较MAC算法种类:CBC-MAC算法和HMAC算法,http中使⽤最多的为HMAC算法.1. CBC-MAC算法:CBC-MAC算法从块密码算法的CBC分组模式演变⽽来,简单的说就是最后⼀个密钥分组的值就是MAC值2. HMAC算法:使⽤Hash算法作为加密基元,结合Hash算法有多种变种(HMAC-SHA-1、HMAC-SHA256、HMAC-SHA512)对称算法和MAC算法结合加密算法不能提供完整性,加密的同时必须引⼊MAC算法避免消息被篡改结合对称加密算法和MAC算法提供机密性额完整性的模式叫Authenticated Encryption(AE)加密模式,有三种:1. E&M模式:消息分别进⾏加密运算和MAC运算,然后将两个运算结果结合起来发送2. MtE模式:先对消息进⾏MAC计算,然后将消息和MAC值组合,再进⾏加密,最终加密值发送出去(http使⽤)3. EtM模式:先对消息进⾏加密得到密⽂,然后对密⽂再计算MAC值,最终将密⽂和MAC值组合在⼀起发送保证数据加密和完整性的三种模式:1. AEAD模式:在底层组合了加密算法和MAC算法,同事保证数据加密和完整性.2. CCM模式:使⽤CBC-MAC算法保证完整性,使⽤AES算法CTR模式保证加密3. GCM模式:GHASH进⾏MAC运算,AES算法CTR模式进⾏加密运算,拥有⼗分不错的效率和性能公开密钥算法特点:1. 功能不⼀样:对称算法主要⽤于加密和解密,⽽公开秘钥算法可以⽤于加密解密、秘钥协商、数字签名2. 运算速度很慢:相⽐对称加密算法来说,公开秘钥算法尤其是RSA算法运算⾮常慢3. 秘钥是⼀对:对称加密算法中,密钥是⼀串数字,加密者和解密者使⽤同样的密钥.公开密钥算法是⼀对,分别为公钥和私钥标准:1. RSA算法主要使⽤PKCS#I定义了两种机制处理填充问题,从⽽保证同样的明⽂、同样的密钥经过RSA加密,每次的密⽂都是不⼀样的2. 两种填充机制分别是RSAES-PKCSI-VI_5和RSAES-OAEP,⽬前推荐使⽤的填充标准是RSAES-OAEP,OpenSSL命令⾏默认使⽤的标准是RSAES-PKCSI-VI_5秘钥(安全性)是什么?1. 对称加密算法、MAC算法使⽤的密钥就是⼀串数字2. 公开密钥算法中的密钥四⼀对,由多个部分组成,但是本质上也可以认为由多个数字组成作⽤1. 名称:对称加密算法秘钥、作⽤:加密解密、说明:秘钥不能泄露2. 名称:⾮对称加密算法秘钥、作⽤:加密解密、说明:公钥可以公开,秘钥不能泄露3. 名称:MAC算法加密、作⽤:消息验证、说明:秘钥不能泄露4. 名称:数字签名算法秘钥、作⽤:⾝份验证、说明:公钥可以公开,秘钥不能泄露5. 名称:会话秘钥、作⽤:加密解密、说明:密钥不能泄密,该密钥⼀般配合对称加密算法进⾏加密解密6. 名称:基于⼝令的密钥、作⽤:进⾏权限校验,加密解密等、说明:⼝令不能泄密⽣命周期1. ⽣成(伪随机数⽣成器⼝令加密[PBE]算法、伪随机数⽣成器)2. 存储(静态秘钥[长期秘钥]、动态秘钥[会话秘钥])3. 解密4. 传输(硬编码在代码中⼝头、邮件)(秘钥协商算法[不⽤存储])秘钥协商算法密钥协商算法就是为解决密钥分配、存储、传输等问题,其也是公开秘钥算法的⼀种秘钥协商算法种类1. RSA秘钥协商算法:⾸先使⽤客户端⽣成⼀个会话秘钥,然后使⽤公钥加密发哥服务器,服务器解密会话秘钥.接下来服务端和客户端使⽤对称加密算法和会话秘钥加解密数据.2. DH秘钥协商算法:DH算法在进⾏密钥协商的时候,通信双⽅的任何⼀⽅⽆法独⾃计算出会话密钥,通信双⽅各⾃保留⼀部分关键信息,再将另外⼀部分信息告诉对⽅,双⽅有了全部信息告诉对⽅,双⽅有了全部信息才能共同计算出相同的会话密钥.ECC1. 为了保证DH的密钥对不被破解,提升安全性的主要⼿段就是增加密钥对的长度,但是长度越长,性能越低.为了解决性能问题,就有了椭圆曲线密码学(Elliptic Curv e Cryptography),简称ECC.2. ECC是新⼀代公开秘钥算法,主要优点就是安全性,极短的密钥能够提供很⼤的安全性,同时性能也很⾼.⽐如224⽐特的ECC密钥和2048⽐特的RSA密钥可以达到同样的安全⽔平,由于ECC密钥具有很短的长度,运算速度⾮常快.3. 在具体应⽤的时候,ECC可以结合其他公开密钥算法形成更快、更安全的公开密钥算法,⽐如结合DH密钥协商算法组成ECDH密钥协商算法,结合数学签名DSA算法组成ECDSA数字签名算法.4. ECC本质上就是⼀个数学公式,任何⼈基于公式都可以设计出椭圆曲线.[尽量选择性能更⾼、安全系数更⾼的命名曲线]数字签名1. 公开密钥算法的另外⼀种⽤途就是数字签名技术2. 解决⽅案:RSA签名算法DSA签名算法3. 数字签名⽤途防篡改:数据不会被修改,MAC算法也有这个特点防抵赖:消息签署者不能抵赖防伪造:发送的消息不能够伪造,MAC算法也有这个特点4. 数字签名流程:⽣成流程1. 发送者对消息计算摘要值2. 发送者⽤私钥对摘要值进⾏签名得到签名值3. 发送者将原始消息和签名值⼀同发给接受者4.验证流程1. 接收者接收到消息后,拆分出消息和消息签名值A2. 接收者使⽤公钥对消息进⾏运算得到摘要值B3. 接收者对摘要值B和签名值A进⾏⽐较,如果相同表⽰签名验证成功,否则就会验证失败4.3. 密码学算法应⽤场景算法安全预测摩尔定律应⽤场景Hash算法(信息摘要算法)1. 算法:MD5、SHA-1、SHA-2、SHA-32. 性能:机密性、完整性3. 应⽤场景:存储账号和⼝令(hash算法加salt)⽣成信息摘要,校验数据完整对称加密算法1. 算法:DES、3DES、AES、RC42. 性能:机密性3. 应⽤场景:对效率有要求的实时数据加密通信(使⽤VPN或者代理进⾏加密通信时)⼤批量数据加密时HTTP加密通讯时公开秘钥算法1. 算法:RSA、DSA、ECC2. 性能:机密性3. 应⽤场景:秘钥加密数字签名单向加密双向加密消息验证码(MAC)1. 算法:CBC-MAC、HMAC2. 性能:完整性3. 应⽤场景:对机密性要求不⾼,只保障完整性和不被篡改时数字签名算法1. 算法:RSA数字签名算法、DSA数字签名算法、ECDSA数字签名算法2. 性能:⾝份验证、不可抵赖性3. 应⽤场景:防篡改防抵赖防伪造4. 密码学算法安全性和性能秘钥长度与算法安全安全的关键要素是秘钥的长度,理论上秘钥越长就越安全,但是秘钥越长性能就下降很多密码学算法性能性能和安全是密码学算法重要指标,在选择时尽量选择安全性⾼的算法,在此基础上在选择性能⾼的算法5. 总结机密性对称算法公开秘钥算法完整性Hash函数算法MAC:基于Hash函数算法、基于对称算法(CBC)数字签名算法⾝份验证HMAC数字签名算法不可抵赖性数字签名算法。

第二章 公钥加密和RSA 3

第二章 公钥加密和RSA 3

RSA算法


RSA算法是第一个既能用于数据加密也能用于 数字签名的算法,因此它为公用网络上信息的 加密和鉴别提供了一种基本的方法。它通常是 先生成一对RSA 密钥,其中之一是保密密钥, 由用户保存;另一个为公开密钥,可对外公开, 甚至可在网络服务器中注册,人们用公钥加密 文件发送给个人,个人就可以用私钥解密接受。 为提高保密强度,RSA密钥至少为500位长, 一般推荐使用1024位。 RSA系统是公钥系统的最具有典型意义的方法, 大多数使用公钥密码进行加密和数字签名的产 品和标准使用的都是RSA算法
关于公钥密码的几种误解


公钥密码比传统密码安全? 任何加密方案的安全性都依赖于密钥的长度 和破解密码的计算工作。所以公钥加密不必常 规加密更安全。用户只要保护他的私钥,接收 的通信就是安全的 公钥密码是通用方法,所以传统密码已经过时? 传统密码用来加密大批量数据,公钥密钥 用来进行密钥分配。
RSA算法
RSA 密钥生成

必须做

确定两个大素数: p, q 选择e或者d,并计算d或者e


素数测试是重要的算法 由e求d要使用到扩展Euclid算法
RSA 的安全性

三种攻击 RSA的方法:

强力穷举密钥:尝试所有可能的密钥。因此,e 和 d 的位数越大,算法就越安全。然而,在密钥产 生和加密解密中使用的计算都非常复杂,所以密 钥越大,系统运行越慢。
公钥密码学

是密码学一次伟大的革命

1976年,Diffie和Hellman 在“密码学新方向”一文 中提出


使用两个密钥:公密钥、私密钥 加解密的非对称性 公钥加密算法是基于数学函数而不是对位的形 式的简单操作。 是对对称密码的重要补充 公钥加密一般用于消息认证和密钥分配。

【网络安全】网络安全之密码学

【网络安全】网络安全之密码学

【⽹络安全】⽹络安全之密码学前⾔⼀、密码学概述现代密码技术及应⽤已经涵盖数据处理过程的各个环节,如数据加密、密码分析、数字签名、⾝份识别、零知识证明、秘密分享等。

通过以密码学为核⼼的理论与技术来保证数据的机密性、完整性、可⽤性等安全属性。

机密性指信息不泄漏给⾮授权的⽤户、实体或过程;完整性指数据未经授权不能被改变,即信息在存储或传输过程中保持不被偶然或蓄意的删除、修改、伪造、乱序、重放、插⼊等操作所破坏;可⽤性是保证信息和信息系统可被授权实体访问并按需求使⽤的特性,即当需要时应能存取所需的信息。

这三个性质俗称CIA。

除CIA外,其他安全属性还包括不可否认性、认证性等。

密码系统的保密性不依赖于对加密体制或算法的保密,⽽依赖于密钥。

⼆、密钥体制的分类根据加密密钥与解密密钥的关系,密码体制可分为对称密码体制和⾮对称密码体制。

对称密码体制也称单钥或私钥密码体制,其加密密钥和解密密钥相同,或实质上等同,即从⼀个易推倒出另⼀个。

常见的对称密钥算法包括DES、3DES、IDEA、 AES、RC4等。

⾮对称密码体制⼜称双钥或公钥密码体制,其加密密钥和解密密钥不同,从⼀个很难推出另⼀个。

其中,⼀个可以公开的密钥,称为公开密钥,简称公钥;另⼀个必须保密的密钥,称为私有密钥,简称私钥。

典型的公私钥密码算法有RSA、DSA、DH、ECC和EIGamal等。

按明⽂的处理⽅式,可以将对称密码体制分为流密码和分组密码。

流密码也称为序列密码,是将明⽂消息按字符逐位地加密,连续的处理输⼊明⽂,即⼀次加密⼀个⽐特或⼀个字节。

分组密码是将明⽂按组分成固定长度的块,⽤同⼀密钥和算法对每⼀块加密,每个输⼊块加密后得到⼀个固定长度的密⽂输出块,典型的密码算法有DES、IDEA、AES、RC5、Twofish、CAST-256、MARS等。

三、密钥管理密码的种类繁多,⼀般可分为以下类型:初始密钥( primary key),⼜称基本密钥(base key),是由⽤户选定或系统分配的到的,可在较长的时间(相对会话密钥)内使⽤;会话密钥( session key)是通信双⽅在⼀次通话或交换数据时使⽤的密钥,可以由可信的密钥分发中⼼(KDC)分配,也可以由通信⽤户协商获得;密钥加密密钥(KEK)是对传输的会话或⽂件密钥进⾏加密的密钥;主机主密钥(host master key)是对密钥加密密钥进⾏加密的密钥,它⼀般保存在主机处理器中。

尔雅《移动互联网时代的信息安全与防护》答案.

尔雅《移动互联网时代的信息安全与防护》答案.

《移动互联网时代的信息安全与防护》答案1 在公钥基础设施环境中,通信的各方首先需要()。

A、检查对方安全B、验证自身资质C、确认用户口令D、申请数字证书正确答案: D2 机箱电磁锁安装在()。

A、机箱边上B、桌腿C、电脑耳机插孔D、机箱内部正确答案: D3 信息流动的过程中,使在用的信息系统损坏或不能使用,这种网络空间的安全威胁被称为()。

A、中断威胁B、截获威胁C、篡改威胁D、伪造威胁正确答案: A4 震网病毒攻击针对的对象系统是()。

A、WindowsB、AndroidC、iosD、SIMATIC WinCC正确答案: D5 美国“棱镜计划”的曝光者是谁?()A、斯诺德B、斯诺登C、奥巴马D、阿桑奇正确答案: B6 信息系统中的脆弱点不包括()。

A、物理安全B、操作系统C、网络谣言D、TCP/IP网络协议正确答案: C7 计算机软件可以分类为()。

A、操作系统软件B、应用平台软件C、应用业务软件D、以上都对正确答案: D8 现代密码技术保护数据安全的方式是()。

A、把可读信息转变成不可理解的乱码B、能够检测到信息被修改C、使人们遵守数字领域的规则D、以上都是正确答案: D9 影响移动存储设备安全的因素不包括()。

A、设备质量低B、感染和传播病毒等恶意代码C、设备易失D、电源故障正确答案: D10 下列关于网络政治动员的说法中,不正确的是()A、动员主体是为了实现特点的目的而发起的B、动员主体会有意传播一些针对性的信息来诱发意见倾向C、动员主体会号召、鼓动网民在现实社会进行一些政治行动D、这项活动有弊无利正确答案: D11 日常所讲的用户密码,严格地讲应该被称为()。

A、用户信息B、用户口令C、用户密令D、用户设定正确答案: B12 网络的人肉搜索、隐私侵害属于()问题。

A、应用软件安全B、设备与环境的安全C、信息内容安全D、计算机网络系统安全正确答案: C13 关于常用文档安全防护的办法,下列选项错误的是()A、对文档加密B、隐藏文档C、进行口令认证、修改权限保护D、粉碎文档正确答案: D14 造成计算机系统不安全的因素包括()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

In the special case that the committed value is a bit, that is, x {0, 1}, one speaks of a bit commitment scheme.
2016/1/8 11
Security Requirements
The security requirements for a bit commitment scheme are the following. The commitment must be binding, i.e.,
proofs and secure multi-party computation.
2016/1/8
4
Commitment Scheme
A commitment scheme consists of two protocols, called

commit and reveal ,
between two parties, usually called the sender and the receiver. In many cases, the protocols commit and reveal can be defined in terms of a single algorithm, requiring no interaction between the sender and receiver at all. Such commitment schemes are non-interactive.

to write the value on a piece of paper, put it in a box, and lock the box with a padlock. The locked box is then given to the other party, but you keep the key. At a later time, you present the key to the other party who may then open the box, and check its contents.

Choose a random x such that
Y=f(b,x)=mbx2 mod n
To open blob(b),

just review b and x, use the encryption to verify: y=f(b,x)=mbx2 mod n Concealing : 如果平方剩余问题不可解,no information on b will be revealed Binding: if not, then exist x1,x2, commit(x1,,1) = commit(x2,,0), mx12=x22 mod n, then m= (x2x1-1)2 (mod n), it is contradiction to the condition.
2016/1/8
3
Application of Commitment
Note that party B sees the commitment of A before choosing its bit bB, so no information on bit bA should leak from the commitment on bA. Similarly, party A could try to influence the value of the resulting bit b (after seeing the bit bB) by opening the commitment on bA as a commitment on 1-bA. Clearly, party A should not be able to “change its mind” in such a way!
2016/1/8
7
Following Commit Phase
Receiver should not have gained any information about X

Information theoretic? Computationally? No two different and valid openings exist It is computationally infeasible to find two different valid openings


2016/1/8
10
Definition
Let commit : {0, 1}k × {0, 1}* {0, 1}* be a deterministic polynomial time algorithm, where k is a security parameter. A (noninteractive) commitment scheme consists of two protocols between a sender and a receiver:
Furthermore, the commitment must be hiding, i.e.,
Party A commits to a random bit value bA R {0, 1} by sending a commitment on bA to party B. Party B then replies by sending a bit value bB R {0, 1} to A. Finally, party A opens the commitment and sends bA to B. Both parties take b = bAbB as the common random bit.
Chapter 3.
Commitment Schemes
2016/1/8
1
Introduction
The functionality of a commitment scheme is commonly introduced by means of the following analogy. Suppose you need to commit to a certain value, but you don’t want to reveal it right away. For example, the committed value is a sealed bid in some auction scheme. One way to do this is
2016/1/8
5
Commitment Protocol
Commit Phase
Sender
X
Receiver
Sender is bound to X Reveal Phase
Sender
X
Receiver
Receiver can verify X was the value in the box


Commit protocol: To commit to a value x {0, 1}*, the sender computes C = commit(r, x), where r R {0, 1}k, and sends C to the receiver. Reveal protocol: To open commitment C = commit(r, x), the sender sends r and x to the receiver. The receiver computes commit(r, x) and verifies that it is equal to the previously received commitment.
Sender should be bound to X

2016/1/8
8
Bit Commitment by Encryption(Example 1)
Let K = (n = pq, e, d) be an RSA key To commit a bit b, we could do the following
Generating mutually random bits is a basic part of many protocols. Commitments are used as an auxiliary tool in many cryptographic applications, such as zero-knowledge

Choose a random x such that x is even if b = 0 x is odd if b = 1 Let blob(b) = xe mod n
To open blob(b),

just review x, use the encryption to check!
Concealing:b不参与其中运算 Binding: 不存在x1(odd),x2(even), x1e = x2emod n
2016/1/8 9
Bit Commitment by Encryption(Example 2)
Let K = (n = pq, p, q primes, m QR(n) ) , (n,m) published To commit a bit b, we could do itment: Locking a Bit in a Secure Box
f: {0,1} X Y is bit commitment scheme if for a randomly chosen x from X
相关文档
最新文档