秘密的实质——密钥

Wecouldn'tfindanyresultsforyoursearch.Pleasetryagainwithanotherkeywords.

密钥仅仅是一个比特序列,但是它所具有的价值和明文等价。密钥的种类主要分为以下几种:

在对称加密中,加密和解密都用同一个密钥,也被称为共享密钥密码。

在公钥密码中,加密和解密都是不同的密钥。用于加密且能公开的密钥称为公钥。用于解密且不能公开的密钥称为私钥。

在消息认证码中,发送者和接收者使用共享的密钥来进行认证。消息认证码只有持有合法密钥的人才能计算出来。通过对比消息认证码就可以识别消息是否被篡改或者伪装。

在数字签名中,签名的生成和验证使用不同的密钥。只有持有私钥的本人才能够生成签名,但由于验证签名使用的是公钥,因此任何人都能够验证签名。

在HTTPS中TLS握手中仅限于本次通信的一次性密钥,下次就不能使用了。这种每次通信只能使用一次的密钥叫会话密钥(sessionkey)。

由于每次会话都会产生新的会话密钥,即使密钥被窃听了,也只会影响本次会话。如果每次都使用相同的密钥叫主密钥(masterkey)。

加密的对象是用户直接使用的信息(内容),这个时候密钥被称为CEK(ContentsEncryptingKey)。用于加密密钥的密钥被称为KEK(KeyEncryptingKey)。

会话密钥被作为CEK使用。主密钥被作为KEK使用的。

这种技术通常被用在共享密钥中。在共享密钥进行通信的过程中,定期(例如,每发送1000个字)改变密钥。当然,发送者和接收者改变的步调要一致。

在更新密钥的时候,发送者和接收者使用单向散列函数计算当前密钥的散列值,并将这个散列值用作新的密钥。用当前密钥的散列值作为下一个密钥。

密钥更新的好处在于,窃听者窃取了每次会话中的密钥,那么这个密钥之后的内容会被解密,但是窃听者无法解密和更新这个密钥之前的通信内容。因为单向散列函数的单向性。这种防止破译过去的通信内容的机制,称为后向安全(backwardsecurity)。

Diffie-Hellman密钥交换(Diffie-Hellmankeyexchange)是1976年由WhitfieldDiffie和MartinHellman共同发明的一种算法。使用这种算法,通信双方仅通过交换一些可以公开的信息就能生成出共享的对称密码的密钥。

虽然这种算法叫“密钥交换”,但是实际上并没有真正的交换密钥,而是通过计算生成出了一个相同的共享密钥。准确的来说,应该叫Diffie-Hellman密钥协商(Diffie-Hellmankeyagreement)

(G^BmodP)^AmodP=G^(B*A)modP=G^(A*B)modP(G^AmodP)^BmodP=G^(A*B)modP至此,A和B计算出来的密钥是一致的。

窃听者能获取到的信息有:P、G、G^AmodP、G^BmodP。通过这4个值想计算出G^(A*B)modP是非常困难的。

如果能知道A和B任意一个数,就可以破解上面所有步骤,并算出最后的共享密钥。但是窃听者只能获取到G^AmodP、G^BmodP,这里的modP是关键,如果是知道G^A也可以算出A,但是这里是推算不出A和B的,因为这是有限域(finitefield)上的离散对数问题。

有限域的离散对数问题的复杂度是支撑Diffie-Hellman密钥交换的基础。

虽然DH密钥交换可以防止破解,但是无法抵御中间人攻击。

中间人可以在Alice和Bob之间,分别和双方进行DH密钥交换,这样中间人可以截获双方的通信信息。DH防止中间人攻击的方式和公钥密码的方式一致,可以使用数字签名,证书的方式来应对。

IPSec中使用的Diffie-Hellman密钥交换,就是针对了这个中间人攻击进行了改良和扩展。

基于口令的密码(PasswordBasedEncryption,PBE)是一种根据口令生成密钥并用该密钥进行加密的方法。加密和解密使用相同密钥。

会使用PBE的原因是:

PBE加密主要包括3个步骤:

PBE加密以后输出3样:

盐和会话密钥需要保存在安全的地方,消息发送给对方。

对比PBE加密过程,可以发现,加密过程中使用了2次伪随机数生成器,解密过程一次都没有使用。

盐主要是用来防止字典攻击的。

由于通过口令生成的密钥KEK强度不如由伪随机数生成器生成的会话密钥CEK,就像一个牢固的保险柜的钥匙放在了一个不保险的地方保管,因此使用基于口令的密码PBE时,需要盐和加密后CEK通过物理方式进行保护。这里提出一种改良的方式。

在生成KEK时,通过多次使用单向散列函数来提高安全性。如果把盐和口令再次输入单向散列函数,得到的值再输入单向散列函数,如此进行1000次得到的散列值作为KEK来使用,是一个不错的方法。

Reference:

《图解密码技术》

Populartags

About

Newsletter

Subscribetoournewsletterandstayupdatedonthelatestnewsandspecialoffers!

THE END
1.零知识证明基础:数字签名数字签名过程网络中的验证者使用发送者的公钥来验证数字签名。如果签名验证通过,这意味着交易确实来自声称的发送者并且没有被篡改。 另外,验证者还会检查发送者是否拥有足够的资金来完成交易。 区块的创建: 一旦交易被验证,它会被放入待打包的交易池。 矿工或验证者将这些交易打包成一个新的区块。 https://blog.csdn.net/zr2006_7/article/details/139996717
2.数字签名的使用(3)签名的复制:一个手写签名不容易被复制,因为复制品通常比较容易被鉴别来:而数字签名很容易被复制,因为一个文件的数字签名的复制品和原文件是一样的:所以要使用数字时问戳等特殊的技术避免数字签名的重复使用。 (4)手书签名是模拟的,且因人而异。数字签名是0和1的数字串,因人和消息而异。 https://www.ruiwen.com/wenxue/gexingqianming/411821.html
3.什么是数字签名?MicrosoftLearn在 2007 Microsoft Office system 应用程序内显示的证书任务窗格中,可以轻易地查看有关有问题证书的信息。2007 Office system应用程序允许您向同一文档中添加多个数字签名。 企业环境中的数字签名 以下情况说明了如何可以在企业环境中使用文档的数字签名: 员工使用 Office Excel 2007 来创建报销单。然后员工会创建三个https://docs.microsoft.com/zh-cn/previous-versions/office/office-2007-resource-kit/cc545901(v=office.12)
4.什么是数字签名如何制作数字签名web3.0对要签名的信息(例如文档或消息)进行哈希计算,生成一个哈希值,该哈希值是信息摘要的唯一表示。 使用私钥加密哈希值,生成数字签名。 3. 附加数字签名 将数字签名附加到要签名的信息中。 4. 验证数字签名 任何持有公钥的人都可以使用公钥解密数字签名。 https://m.php.cn/faq/843731.html
5.区块链探秘:从基础到深度,全面解读区块链技术与应用发送方可以使用接收方的公钥对数据进行加密,只有拥有对应私钥的接收方才能解密数据。 但是相对于对称加密,非对称加密的运算速度较慢,效率较低 常见的非对称加密算法:RSA、ECC 3.数字签名 数字签名是网络通信中,附加在原文信息上的一端额外的数据,是哈希函数和非对称加密的一种综合应用模式。 https://www.ctyun.cn/zhishi/p-410786
6.简答题简述数字签名的基本原理及过程。(8.0分)数字签名的主要目的是保证数据的完整性和真实性,一般包括两部分:签名算法和验证算法,通常由公钥密码算法和Hash算法结合实现。 假设发送方A要向接收方B发送一消息M,并对该消息进行数字签名,其具体的原理和过程如下: 1发送方A采用Hash算法生成要发送消息的摘要;然后用自己的私钥对摘要加密,实现签名,并将签名附加在消息https://easylearn.baidu.com/edu-page/tiangong/questiondetail?id=1810115261704185361&fr=search
7.关于区块链100个基础问题答疑18. 比特币地址如何生成? 比特币地址通过使用数字签名技术得到。首先随机选出256位二进制数字,形成私钥,由私钥生成公钥,然后通过加密函数来生成地址。这个生成方向是单向的。也就是你知道了地址是无法通过解密方法来计算出私钥的。 19. 什么是数字签名? https://www.jianshu.com/p/96d3cf8a0cc7
8.CA数字证书的驱动在哪里下载(CA数字证书签名流程)二、如何使用CA数字证书进行签名 1、先下载需要签名的PDF文件; 2、安装好驱动,再插入CA数字证书; 3、打开PDF文件在需要签名的地方签名; 4、法人、监事、股东等都要进行签名; 5、全部签完后提交等待工商局审核通过就能拿到营业执照。 三、CA数字签名注意事项 https://www.hcx123.com/news/sz/2079.html
9.中华人民共和国密码法–云南城市建设职业学院对称密码算法,即加、解密使用的密钥是相同或容易相互推导得出的,如同往一个上了锁的箱子里放物品,放入和取出物品时需要用同样的钥匙开锁。公钥密码算法,加密的时候用公开的密钥,解密的时候用只有自己知道的私钥,且从私钥可以推导出公钥,但从公钥不能推导出私钥,多用于身份认证、数字签名,可确保真实性和不可否认性。https://www.yncjxy.com/baoweichu/falufagui/20964/
10.数字证书签名到底是什么?这篇文章讲得太好了3. 数字证书(Certificate) 在HTTPS的传输过程中,有一个非常关键的角色--数字证书,那什么是数字证书?又有什么作用呢? 所谓数字证书,是一种用于电脑的身份识别机制。由数字证书颁发机构(CA)对使用私钥创建的签名请求文件做的签名(盖章),表示CA结构对证书持有者的认可。 https://www.51cto.com/article/628890.html
11.abbyyfinereaderpdf15中文破解版v15.0.114.4683查看和更新元数据并验证数字签名,以确保文档的真实性和完整性。 3、从任何类型的PDF中检索信息 通过使用全文关键字搜索和书签,即使在扫描的PDF中也可以快速轻松地查找信息。文档打开后,FineReader PDF会自动检测不可搜索的PDF文档,并立即应用OCR(光学字符识别)使其可供搜索。 4、编辑和更新PDF 添加以前版本的https://www.ddooo.com/softdown/153961.htm
12.2016年网络安全威胁的回顾与展望将APT概念泛化到一些使用高级手段和技巧的攻击行为,是不负责任的,没有攻击意图和攻击意志的APT分析,不是可靠的APT分析判定。而恰恰相反的是,高级的网络攻击未必使用高级的技巧和装备,APT攻击者劫持普通恶意代码,包括全面伪装成普通的黑产犯罪可能会成为一种趋势。 https://www.antiy.com/response/2016_Antiy_Annual_Security_Report.html
13.交通银行A. 我行努力采取各种符合业界标准的物理、电子和管理方面的安全措施来保护您的个人信息安全,如:SSL/应用层加密技术、HTTPS双向认证技术、数字签名等,以防止您的个人信息在收集、存储、传输等过程中遭到泄露、破坏。 B. 我行积极建立信息安全管理制度规范来管理规范个人信息的存储和使用,我行按照“授权人不参与操作,操http://www.bankcomm.com/BankCommSite/upload/infos/201802/07/2600434/statement/include/sryh/Android.html
14.在使用U盾进行交易时提示:“您的数字签名有错误”,是什么意思?遇此提示,一般是由于U盾硬件未正常连接、U盾驱动程序不正常或当页面提示“请选择用于签名的本人证书”时未选择或选择了错误的证书导致。您可通过证书驱动程序查看证书状态是否正常判断问题原因,然后分别采取重新连接U盾、重装U盾驱动程序及选择正确个人证书重新交易等解决方法进行解决。 此外,若您使用的是华虹二代U盾,此问https://wap.icbc.com.cn/icbc/grdzyx3/74.htm
15.小米系列深度刷机救砖通用教程(上)3.让系统进入测试模式跳过驱动数字签名(在Win10或网吧操作可忽略此项) 安装设备驱动有时会涉及到底层,为保护操作系统安全性,防止一些不明来历的驱动,对其进行破坏或植入恶意代码,引入了驱动数字签名的机制,通常只有被微软签名过的“安全”驱动才能被正常安装并使用,而miflash中的深度刷机驱动文件与FASTBOOT的不同,是没http://www.miui.com/thread-4324312-1-1.html