能力值:
( LV2,RANK:10 )
|
-
-
2 楼
基本上没什么意义。
搞两个哈西多此一举。
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
第一个hash是为了口令认证,不用两个hash,难道将解密密钥公开不成?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
等2楼大牛给一个更好的,期待。
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
貌似和PKI体系差不多........
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
和 PKI 差的多
这个仅仅多了一道口令验证, 而且用处有限
关键还是那个真正的密钥如何传递的问题, 密钥安全很关键啊
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
密钥传输方案:
发送方可以将数据解密密钥用接收方的公钥加密以后再传输
这样,数据解密密钥只有接受方可以解密了。
该方案只能保证在传输过程中的安全。
|
能力值:
( LV5,RANK:60 )
|
-
-
8 楼
如果使用接收方公钥来加密“密钥”,然后再传输给接收方,那么似乎不需要使用两个hash了吧。
直接把密码加密后的密文传输过去不就行了吗?
反正攻击方得到密文和公钥加密后的“密钥”都没啥用。
|
能力值:
( LV3,RANK:20 )
|
-
-
9 楼
刚才我的讨论已经跑题了,是讨论另外一个话题了,和本主题开始公布的那个加密协议无关。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
赞成,支持一个。
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
发本帖的目的不是用他和其他复杂加密协议进行比较
毕竟使用的场合不一样,无所谓孰强孰弱
为的是给大家一个思路
本协议可以用在不需要密钥交换的地方,如一个软件保险箱,藏一藏小秘密。
本协议非常简单,亮点就在两个hash,否则要么无法进行认证,要么就会泄漏加密密钥。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
这个协议需要密钥交换, 否则无法解密
设计两个 hash 的目的仅仅在于事先验证, 没有合法的密钥, 就可以省去解密的过程了
去掉第一个 hash 以后, 就不需要验证了, 不管来什么密钥, 直接尝试解密, 只是结果不一定对而已(这个需要事后验证)
|
能力值:
( LV3,RANK:20 )
|
-
-
13 楼
我说的不需要密钥交换是指加密者和解密者是同一个人,比如张三将自己的私人日记用口令“天大地大我最大”进行加密,目的是不让别人看到自己的私人日记,而口令就保存在他的脑袋里,当那天他又要看看自己以前的日记时,他就从自己脑袋里取出口令对日记的密文进行解密就行了
所谓的事后验证也是要有参考依据的,没有认证,就无法知道密钥是否正确,所以也无法对通过该密钥解密的结果进行验证,不能因为解密的结果是一堆垃圾就断定密钥的不正确,谁也不能保证被加密的数据本身就不是一堆垃圾!
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
其实你的目的就是为了验证一下密钥是否正确而以。
一个hash算法就够了,就像unix那样,产生一个随机的salt,保存 salt+hash(salt+pwd)
加密密钥用 hash(pwd) 就是了。
|
能力值:
( LV3,RANK:20 )
|
-
-
15 楼
这是一个不错的想法!
|
能力值:
( LV3,RANK:20 )
|
-
-
16 楼
我将该协议实现了一下,没有什么技术含量,不过有一定的实用价值
经过简单测试通过
源代码及编译好的dll见附件
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
大家讨论来讨论去,其实都没有错。只是感觉LZ不应该说他提出的是一个协议,协议是在不同entity之间进行通信的流程,但是LZ说“我说的不需要密钥交换是指加密者和解密者是同一个人”,可见本文算法不是一个协议。所以WisdomZh和nudtsong会有些意见,他们是按照协议来理解的。
|
能力值:
( LV3,RANK:20 )
|
-
-
18 楼
是啊,各人有各人的看法,我对加密协议的理解是加密具体步骤。
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
你所说的加密算法是用来加密数据的,加密密钥由口令生成,并且加密密钥并不需要通过网络等信道传输给另外的人,所以它不能做加密通信协议来看待,否则就要用上PKI之类的东西了。算法本身来看没什么问题的。
|
能力值:
( LV3,RANK:20 )
|
-
-
20 楼
呵呵,是一个概念的理解问题
这里指的协议是加密协议,也就是加密的步骤,和通讯协议不是一回事
|
|
|