社区
云安全
帖子详情
请教DES算法的初始密钥和初始向量是怎么产生的
Hell_Knight
2009-03-06 02:31:35
毕设做了个简单的存储系统,允许用户用DES算法加密自己存储的数据。考虑到全部让用户自己选择初始密钥和初始向量太麻烦,于是想加入系统自动生成密钥和初始向量的功能。请问密钥和向量是如何生成的?
...全文
1223
7
打赏
收藏
请教DES算法的初始密钥和初始向量是怎么产生的
毕设做了个简单的存储系统,允许用户用DES算法加密自己存储的数据。考虑到全部让用户自己选择初始密钥和初始向量太麻烦,于是想加入系统自动生成密钥和初始向量的功能。请问密钥和向量是如何生成的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangyang0402
2009-05-05
打赏
举报
回复
OpenSSL命令行中是输入口令
再由输入口令产生初始化密钥和初始向量
wanganl
2009-04-17
打赏
举报
回复
我当时做RSA密钥生成,就是取的毫秒,而且做了些延时语句。秒以上的根本不敢取。计算机运行速度太快,一秒钟以内就把所有的任务都完成了。哈哈。
还没淹死的鱼
2009-04-17
打赏
举报
回复
伪随机也可以做成不可重复的, 比如多取几次种子, 或取时间时取到毫秒级, 重复的概率就很小了
wanganl
2009-04-16
打赏
举报
回复
此外,还有个笨方法,就是密钥也固定,但绝对不公开,存在软件里别往外泄露就是了。反正DES算法允许一个密钥使用多次。
该方法仅供参考,别写在论文里。写在论文里会遭到鄙视的呵呵。
wanganl
2009-04-16
打赏
举报
回复
楼主的问题可以转化为如何获得随机数:
C语言里有随机函数,如果直接调用,该随机函数每次都返回一个相同的随机数,所以,我们应该加入“随机种子”,这个种子用时间来做,最好不过。加入的方法嘛,给你两个链接,里面有详细的例子。
http://hi.baidu.com/c_program/blog/item/e6abe6278101950b908f9df7.html
http://blog.163.com/liugang_a1/blog/static/1511563620092302321532/
我以前做过类似的,我记得是每次生成4比特随机数。那么,64比特的DES源密钥只需要16次循环即可生成。
fonix
2009-03-15
打赏
举报
回复
让用户输入口令,从口令派生出密钥,比如 key = MD5(password)
密钥任何地方都不存,生成,使用之后,抛弃
下次用户需要输入正确的password才能解密文件
楼上的方案,没有真正解决问题,只是把问题转嫁到密钥如何保存这个问题上
漫天飞花
2009-03-11
打赏
举报
回复
可以随机生成。再把密钥保存起来
3
DES
算法
计算MAC
此代码采用双倍长
密钥
,计算工作
密钥
mackey,pinkey,计算校验值,计算mac
加密
算法
Demo 数据加密标准(
DES
)的C#实现
加密
算法
Demo net /* * 数据加密标准(
DES
)的C#实现(1) * * 采用随机的
密钥
Key和
初始
化
向量
IV加密 * * 运行环境:.net2.0 framework */ /* * 关于
DES
加密中的
初始
化
向量
IV: * 对于给定的
密钥
k,不使用
初始
化
向量
的简单块密码将同一个纯文本输入块加密为 * 同一个密码文本输出块。如果您的纯文本流中有重复块,则您的密码文本流中也会 * 有重复块。如果未经授权的用户知道了您的纯文本块结构的任何信息,他们就可以 * 利用该信息来解密已知的密码文本块,并有可能重新获得您的
密钥
。为了防止这个 * 问题,前一个块中的信息被混合到下一个块的加密过程中。这样一来,两个相同的 * 纯文本块的输出就变得不一样了。由于此技术使用前一个块加密下一个块,因此需 * 要
初始
化
向量
来加密数据的第一个块。 */
php 基于标准的
DES
CBC模式的加密
算法
a)采用标准的CBC模式的
DES
加密
算法
; b)
密钥
长度为56位,唯一
密钥
; c)数据采用
初始
向量
(VI)做互斥运算,VI唯一
初始
向量
; d)所有协议数据的明文需要在尾部加上原始数据长度,再加上“ABCD”4个字母,然后按64位进行分组,不足64位的以“\0”补足,分组后的明文采用统一的加密方式生成密文,即采用 “明文+
密钥
+
初始
化
向量
(VI)”。
C++实现
DES
算法
四种模式ECB,CBC,OFB,CFB.zip
SummerMVP的gravatar头像 SummerMVP2020-04-18 15:25:44原C++实现
DES
算法
四种模式ECB,CBC,OFB,CFB 项目描述 1. 分别实现 ECB、CBC、CFB、OFB 这四种操作模式的
DES
。每种操作模式都有一组对应的测试数据, 以便检查程序的正确性。其中,CFB 操作模式为 8 位 CFB 操作模式,OFB 操作模式为 8 位 OFB 操作模 式。 2. 要求以命令行的形式,指定明文文件、
密钥
文件、
初始
化
向量
文件的位置和名称、加密的操作模式以 及加密完成后密文文件的位置和名称。加密时先分别从指定的明文文件、
密钥
文件和
初始
化
向量
文件中 读取有关信息,然后按指定的操作模式进行加密,最后将密文(用 16 进制表示)写入指定的密文文件。 命令行的具体格式如下: e1
des
-p plainfile -k keyfile [-v vifile] -m mode -c cipherfile 参数: -p plainfile 指定明文文件的位置和名称 -k keyfile 指定
密钥
文件的位置和名称 -v vifile 指定
初始
化
向量
文件的位置和名称 -m mode 指定加密的操作模式 -c cipherfile 指定密文文件的位置和名称。 3. 分别实现对每种操作模式下加密及解密速度的测试,要求在程序中生成 5MB 的随机测试数据(不要 求使用随机数发生器),连续加密、解密 20 次,记录并报告每种模式的加密和解密的总时间(毫秒)和 速度(MByte/秒)。 4. 用 C 和/或 C++语言完成程序。 运行环境 vs2012 项目技术(必填)
DES
C++
CBC
DES
加密
程序作用:实现
DES
加密、解密、文件加密的CBC(密码分组连接)
算法
和位操作*版本号:1.03 *说明:此程序为
DES
加、解密程序
云安全
4,451
社区成员
4,381
社区内容
发帖
与我相关
我的任务
云安全
云计算 云安全相关讨论
复制链接
扫一扫
分享
社区描述
云计算 云安全相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章