基于口令的密码(PBE)

基于口令的密码(Password Based Encryption,PBE)是一种基于口令生成密钥,并使用该密钥进行加密的方法。其中加密和解密使用的是同一个密钥。

根据用户自己的口令和salt生成口令密码,我们先看下加密的过程:

加密的过程可以分为这几步:

  1. 生成KEK密钥
  • 使用伪随机数生成器来生成salt
  • 将salt和用户自己的口令使用单向散列函数算法生成KEK密钥
  1. 生成会话密钥并加密
  • 使用伪随机数生成器生成会话密钥CEK
  • 使用步骤1生成的KEK密钥对会话密钥CEK进行加密,得到加密后的会话密钥
  • 将步骤1生成的salt和步骤2生成的加密后的会话密钥保存起来,以供后面解密的时候使用。
  1. 加密消息
  • 使用步骤2中生成的会话密钥CEK来对消息进行加密,从而得到加密后的消息。

步骤1生成的KEK并不需要保存,因为它完全可以根据salt来重构。

接下来我们再看一下解密的过程:

  1. 重建KEK
  • 使用保存的salt和用户记住的口令,根据单向散列算法重建KEK。
  1. 解密会话密钥
  • 将保持的加密后的会话密钥使用步骤1生成的KEK解密,得到解密后的会话密钥
  1. 解密消息
  • 使用解密后的会话密钥对加密过后的消息进行解密,得到最终消息原文。

为什么要使用salt呢?

salt主要是为了防御字典攻击,因为用户自己的口令不具备随机性,很容易被暴力破解。加了salt之后,被暴力破解的难度大大加大。

更多精彩内容且看:

  • 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
  • Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新
  • Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新
  • java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程

更多内容请访问 http://www.flydean.com/pbe/

基于口令的密码(PBE)相关推荐

  1. 基于口令的密码PBE(Password Based Encryption)

    用户只保存口令,秘钥存在u盘或电脑里面. 1. 加密 2. 解密 [参考] [1] 结城浩:图解密码技术[M].周自恒.3.北京:人民邮电出版社,2016

  2. java 基于口令加密算法,Java安全编程:基于口令加密(PBE)

    安全 PBE 在之前的文章中曾讲到过DES加密算法,类似这种加密算法都有一个密钥,密钥的长度决定了加密的安全性,但是这种密钥比较难记忆,是需要存储的. PBE算法是一种基于口令的加密算法,它并不是构建 ...

  3. PBE(Password Based Encrytion)基于口令的密码

    什么是PBE 我们在使用混合密码系统或者使用密钥协商算法+对称加密的方式进行任何数据的加密的时候,都难以避免地要涉及到密钥的保存,那么密钥如果明文地保存在电脑上那么很容易就会被别人盗取,那么如果我们使 ...

  4. 对称加密算法之基于口令加密——PBE

    PBE算法 1. 算法简述 2.模型分析 3. 代码实现 3.1 算法实现 3.2 测试代码 3.3 运行结果 1. 算法简述 PBE(Password Based Encryption, 基于口令加 ...

  5. Java加解密(六)基于口令(PBE)加密

    目录 基于口令(PBE)加密 1 定义 2 加密过程 3 解密过程 5 PBE加密算法会话密钥保存 4 使用场景 5 JDK支持的PBE加密算法 6 Bouncy Castle 支持的PBE加密算法 ...

  6. NIST SP 800-132基于口令的密钥生成函数PBKDF和主密钥保护数据的方法研究

      摘要:本文档对NIST SP 800-132介绍的基于口令的密钥生成函数PBKDF进行简要分析记录,基于口令的密钥生成函数即将口令(Password)通过密钥导出函数KDF后生成主密钥.同时描述了 ...

  7. 计算机安全:基于口令的认证

    在开始我们这一这篇文章的正题之前,请允许我聒噪几句计算机安全中,关于用户认证的一些基本概念. 数字用户认证(以下简称"认证"),就是系统对于用户电子式提交的身份建立信任的过程.系统 ...

  8. oracle的口令就是密码吗,如何修改Oracle用户的密码(不改变原密码)

    如何修改Oracle用户的密码 有的人回答说这个不是很简单吗 alter user identified by +密码 如果不知道用户的密码情况下,不能改变原始密码呢(适用于用户密码过期) 测试如下 ...

  9. 基于格的密码与SABER

    基于格的密码与SABER 基于格的密码体制的优势 安全假设 \quad对于密码学算法而言,如果能够建立在最坏情况下的困难性之上是最好不过.这样意味着任何情况下都是困难的. 然而,一个好的密码算法,它需 ...

最新文章

  1. eclipse中Tomcat启动了 但看不到tomcat首页
  2. 图像处理之霍夫变换(直线检測算法)
  3. python快速编程入门例题-Python快速编程入门,打牢基础必须知道的11个知识点 !...
  4. XLS封装成EXE制作全攻略
  5. python输入两个整数按先大后小的顺序输出_指针变量:输入a和b两个整数,按先大后小的顺序输出a和b。...
  6. 理解遗传算法循环交叉
  7. PHP代码中解决出现中文乱码的问题
  8. PHP 7.0 5.6 下安裝 phpLDAPadmin 发生错误的修正方法
  9. sql server 中join 查詢中on後面 加case的用法.
  10. linux虚拟机头文件快捷键,linux学习笔记——基础命令、快捷键与认识虚拟机
  11. mavlink协议从入门到放弃(二)
  12. Matplotlib:面积图、填图、饼图
  13. 解决网易服务器延迟大,网易WOW服务器延迟
  14. “汉语编程”是解决安全问题的终极之路?
  15. 【IELTS】机考全流程
  16. Windows配置网络
  17. 贼好用的Java工具类库,GitHub星标13k+,很是厉害!
  18. 2021年十大数据分析和商业智能趋势
  19. 解析北斗+UWB室内外一体化融合定位技术
  20. 【回忆 总结】我的大学四年

热门文章

  1. html tabcontrol模板,自定义TabControl 分页标题样式
  2. 打油诗---------听说名字要长才有人看
  3. 林业病虫害数据集和数据预处理方法介绍
  4. python中selenium的运用实例
  5. 【速卖通代运营】2022跨境电商怎么做?速卖通今年重点要做三件事
  6. 短视频账号矩阵管理系统
  7. Java多线程:多线程同步安全问题的 “三“ 种处理方式 ||多线程 ”死锁“ 的避免 || 单例模式”懒汉式“的线程同步安全问题
  8. VPP上利用IPSec加密Vxlan隧道实验
  9. win10 映射网络磁盘导致资源管理异常情况
  10. Java单例模式--懒汉式和饿汉式(Demo)