密码学应用(二) 之 模型应用

之前写了一篇密码学入门,看大家反馈还不错,所以根据之前的的经验,继续写一篇应用篇,算是一种延续。
这篇文章我会按照几个在产线中的应用模型逐个介绍。

通用模型

 

这个模型公私钥由资源服务方管理平台统一生成,并颁布给使用方,使用方用于自己的服务,例如微信公众等平台都类似采用这种方式。

这个模型公私钥都由用户方生成,用户一般通过账号密码登录资源方系统,将公钥注册进平台,这是典型的ssh验证,例如github等平台都是采用这种。
看来上面两个模型,都有一个共同点,都需要人去介入,所以大家可能会有问题,为啥资源方系统不直接放出公私钥接口,使用方直接调用就好了。如下图:

理论上是可行的,不过这种方式需要分情况讨论,如果使用方和资源方都是自己内部的服务系统没有问题,如果是第三方接入就会出现安全性问题。假设A是资源方,B是使用方

    情况一

  1. 密钥由A产生,如果传输私钥给B,在网络传输过程就可能会被截取
  2. 如果传输公钥给B,这种更不可信,不但是截取问题,公钥本身就是属于公开性质

    情况二

  3. 密钥由B产生,如果传输私钥给A,在网络传输过程就可能会被截取
  4. 如果传输公钥给A,那么公钥可能在网络传输过程中被串改。
    难道就没有办法了吗?接着往下看。

复合型模型

 

从图中大家应该很容易看清流程。这里需要说明一点,为了增加安全性,对称算法的密钥的生成的规则也是双方规定, 一般可以采用种子随机数 + 时间性随机数,而只对种子随机数采用非对称加密,并在网络上传输,到达租户的端后,租户解密种子随机数,再通过某时间性算法生成基于这个时间窗口的随机数,两者组合起来就是完整的对称算法的密钥。
这样做的好处有几个:

  1. 三重安全性,对称算法 + 非对称算法 + 时间有效性 + 组合规则
  2. 更高效,采用RSA对对称密钥加密,采用对称算法对内容加密。

缺点:

  1. 比较复杂
  2. 对租户的时间有强一致性要求。不能差的过分离谱,要在一定的时间窗口内。

总结

虽然目前非对称算法有足够的安全性,不过在具体的应用中的使用,需要综合评估。只有最合适的才是最好的。喜欢的话,欢迎关注公众号

应用密码学,全文 序 I W.迪菲(Whitfield Diffie) I 前 言 IV 怎样读这本书? V 致谢 VI 作者简介 VII 第一章 基础知识 1 1.1专业术语 1 1.2 隐写术 7 1.3 代替密码和换位密码 8 1.4 简单异或 11 1.5一次一密乱码本 12 1.6 计算机算法 14 1.7 大数 14 第一篇 密码协议 16 第章 协议结构模块 16 2.1 协议介绍 16 2.2 使用对称密码术的通信 21 2.3 单向函数 22 2.4 单向Hash函数 23 2.5 使用公开密钥密码术的通信 24 2.6 数字签名 26 2.7 带加密的数字签名 31 2.8 随机和伪随机序列的产生 33 第三章 基本协议 36 3.1 密钥交换 36 3.2 鉴别 40 3.3 鉴别和密钥交换 43 3.4 鉴别和密钥交换协议的形式分析 50 3.5 多密钥公开密钥密码学 53 3.6 秘密分割 54 3.7 秘密共享 55 3.8 数据库的密码保护 58 第四章 中级协议 59 4.1时间戳服务 59 4.2 阈下信道 62 4.3 不可抵赖的数字签名 63 4.4 指定的确认者签名 64 4.5 代理签名 65 4.6 团体签名 65 4.7 失败-终止 数字签名 66 4.8 用加密数据计算 67 4.9 比特承诺 67 4.10 公平的硬币抛掷 69 4.11 智力扑克 72 4.12 单向累加器 75 4.13 秘密的全或无泄露 76 4.14 密钥托管 76 第五章 高级协议 79 5.1 零知识证明 79 5.2 身份的零知识证明 85 5.3 盲签名 87 5.4 基于身份的公钥密码 90 5.5 不经意传输 90 5.6 不经意签名 92 5.7 同时签约 92 5.8 数字证明邮件 95 5.9 秘密的同时交换 97 第六章 深奥的协议 98 6.1 保密选举 98 6.2 保密的多方计算 105 6.3 匿名报文广播 107 6.4 数字现金 109 第篇 密码技术 116 第七章 密钥长度 116 7.1 对称密钥长度 116 7.2 公钥密钥长度 122 7.3 对称密钥和公钥密钥长度的比较 128 7.4 对单向Hash函数的生日攻击 128 7.5 密钥应该多长 128 7.6 总结 129 第八章 密钥管理 130 8.1 密钥生成 130 8.2 非线性密钥空间 135 8.3 发送密钥 135 8.4 验证密钥 137 8.5 使用密钥 138 8.6 更新密钥 139 8.7 存储密钥 139 8.8 备份密钥 140 8.9 泄露密钥 141 8.10 密钥有效期 141 8.11 销毁密钥 142 8.12 公开密钥的密钥管理 143 第九章 算法类型和模式 146 9.1 电子密码本模式 146 9.2 分组重放 147 9.3 密码分组链接模式 149 9.4 序列密码算法 152 9.5 自同步序列密码 154 9.6 密码反馈模式 155 9. 7 同步序列密码 157 9.8 输出反馈模式 158 9.9 计数器模式 160 9.10 其他分组密码模式 161 9.11 选择密码模式 163 9.12 交错 164 9.13 分组密码算法与序列密码算法 165 第十章 使用算法 167 10.1 选择算法 167 10.2 公钥密码与对称密码 169 10.3 通信信道加密 169 10.4 加密数据存储 172 10.5 硬件加密与软件加密 174 10.6 压缩、编码、加密 176 10.8 密文中隐藏密文 177 10.9 销毁信息 178 第三篇 密码算法 180 第十一章 数学背景 180 11.1 信息论 180 11.2 复杂性理论 183 11.3 数论 187 11.4 因子分解 200 11.5 素数产生 202 11.6 有限域上的离散对数 205 第十章 数据加密标准(DES) 207 12.1 背景 207 12.2 DES描述 210 12.3 DES的安全性 219 12.4 差分及线性分析 224 12.5 实际设计的准则 232 12.6 DES变形 232 12.7 DES现在的安全性如何? 238 第十三章 其它分组密码算法 239 13.1 LUCIFER算法 239 13.2 MADEYGA算法 239 13.3 NewDES算法 241 13.4 FEAL算法 243 13.5 REDOC算法 247 13.6 LOKI算法 248 13.7 KHUFU和KHAFRE算法 250 13.8 RC2算法 252 13.9 IDEA算法 253 13.10 MMB算法 259 13.11 CA—1.1算法 260 13.12 SKIPJACK算法 261 第十四章 其它分组密码算法(续) 263 14.1 GOST算法 263 14.2 CAST算法 265 14.3 BLOWFISH算法 266 14.4 SAFER算法 269 14.5 3—WAY算法 271 14.6 CRAB算法 271 14.7 SXAL8/MBAL算法 273 14.8 RC5算法 273 14.9 其它分组密码算法 274 14.10 分组密码设计理论 274 14.11 使用单向散列函数的算法 278 14.12 分组密码算法的选择 281 第15章 组合的分组密码 283 15.1 双重加密 283 15.2 三重加密 284 15.3 加倍分组长度 288 15.4 其它一些多重加密方案 289 15.5 缩短CDMF密钥 291 15.6 白噪声 291 15.7 级联多重加密算法 291 15.8 组合多重分组算法 292 第十六章 伪随机序列发生器和序列密码 293 16.1 伪随机序列发生器 293 16.2 线性反馈移位寄存器 297 16.3 序列密码的设计与分析 304 16.4 使用LFSR的序列密码 305 16.5 A5 313 16.6 Hughes XPD/KPD 313 16.7 Nanoteq 314 16.8 Rambutan 314 16.9 附加式发生器 314 16.10 GIFFORD 316 16.11 M算法 317 16.12 PKZIP 318 第17章 其它序列密码和真随机序列发生器 320 17.1 RC4 320 17.2 SEAL 321 17.3 WAKE 322 17.4 带进位的反馈移位寄存器 323 17.5 使用FCSR的序列密码 329 17.6 非线性反馈移位寄存器 332 17.7 其它序列密码 333 17.8 序列密码设计的系统理论方法 334 17.9 序列密码设计的复杂性理论方法 335 17.10 序列密码设计的其它方法 336 17.11 多个序列密码的级联 337 17.12 序列密码的选择 337 17.13 从单个伪随机序列发生器生成多个序列 338 17.14 真随机序列产生器 339 第十八章 单向hash函数 344 18.1 背景 344 18.2 SNEFRU 346 18.3 N- hash 346 18.4 MD4 349 18.5 MD5 350 18.6 MD2 354 18.7 安全hash算法(SHA) 354 18.8 RIPE- MD 357 18.9 HAVAL 357 18.10 其它单向hash函数 358 18.11 使用对称分组算法的单向hash函数 358 18.12 使用公开密钥算法 365 18.13 单向hash函数的选择 365 18.14 消息鉴别码 366 第19章 公开密钥算法 370 19.1 背景 370 19.2 背包算法 371 19.3 RSA算法 374 19.4 POHLIG-HELLMAN算法 381 19.5 RABIN算法 381 19.6 ElGAMAL算法 383 19.7 McELIECE算法 385 19.8 椭圆曲线密码体制 386 19.9 LUC算法 386 19.10 有限自动机公开密钥密码体制 387 第十章 公开密钥数字签名算法 389 20.1 数字签名算法(DSA) 389 20.2 DSA的变形 396 20.3 GOST数字签名算法 398 20.4 离散对数签名方案 399 20.5 ONG-SCHNORR-SHAMIR 401 20.6 ESIGN 401 20.7 细胞自动机 402 20.8 其它公开密钥算法 403 第21章 鉴别方案 405 21.1 FEIGE—FIAT—SHAMIR算法 405 21.2 GUILLOU—QUISQUATER算法 409 21.3 SCHNORR算法 411 21.4 身份识别方案转为数字签名方案 412 22.1 Diffie-Hellman 算法 413 22.2 站间协议 415 22.3 Shamir的三次传递协议 415 22.4 COMSET 416 22.5 加密的密钥交换 416 22.6加强的密钥协商 420 22.7会议密钥分发和秘密广播 420 23 协议的专用算法 423 23.1 多重密钥的公开密钥密码学 423 23.2 秘密共享算法 423 23.3 阈下信道 426 23.4 不可抵赖的数字签名 431 23.5 指定的确认者签名 433 23.6 用加密数据计算 434 23.7 公平的硬币抛掷 435 23.8 单向累加器 437 23.9 秘密的全或无泄露 437 23.10公平和防错的密码体制 439 23.11知识的零知识证明 440 23.12盲签名 442 23.13不经意传输 443 23.14保密的多方计算 443 23.15概率加密 444 23.16量子密码学 446 第四篇 真实世界 449 24 实现方案范例 449 24.1 IBM秘密密钥管理协议 449 24.2 MITRENET 450 24.3 ISDN 450 24.4 STU-Ⅲ 452 24.5 KERBEROS 452 24.6 KRYPTOKNIGHT 457 24.7 SESAME 457 24.8 IBM 通用密码体系 458 24.9 ISO鉴别框架 459 24.10 保密性增强邮件(PEM) 462 24.11 消息安全协议(MSP) 467 24.12 PRETTY GOOD PRIVACY(PGP) 467 24.13 智能卡 469 24.14 公开密钥密码学标准(PKCS) 470 24.15 通用的电子支付系统(UEPS) 471 26.16 CLIPPER 473 24.17 CAPSTONE 475 24.18 AT&T 3600型电话保密设备(TSD) 475 25 政治 476 25.1 国家安全局(NSA) 476 25.2 国家计算机安全中心(NCSC) 477 25.3 国家标准技术所(NIST) 478 25.4 RSA数据安全有限公司 481 25.5 公开密钥合作者 481 25.6 国际密码研究协会(IACR) 482 25.7 RACE 完整性基本评估(RIPE) 483 25.8 对欧洲的有条件访问(CAFE) 483 25.9 ISO/IEC 9979 484 25.10 专业人员、公民自由及产业性组织 484 25.11 Sci. Crypt 485 25.12 Cypherpunks 485 25.13 专利 486 25.14 美国出口法规 486 25.15 其他国家的密码进出口 491 25.16 合法性问题 492 Matt Blaze跋 493 第五篇 源代码 495 1. DES 495 2. LOK191 505 3. IDEA 510 4. GOST 516 5. BLOWFISH 520 6. 3-Way 529 7. RC5 535 8. A5 539 9. SEAL 545 References 553
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值