免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 21142 | 回复: 68
打印 上一主题 下一主题

也说Hash与加密 [复制链接]

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-07-05 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-18 02:23 |只看该作者 |倒序浏览
原贴的起因及讨论详见下面链接及前后各页:
http://bbs.chinaunix.net/thread-1242846-5-1.html   该贴被锁。

我想我明白了bbjmmj的意思。

Hash生成伪随机序列码,记作PN。原始信息,记作A。
1、PN码加密原始信息A,就是原始信息A与PN码进行异或运算(相当于调制),得到加密信息B。
2、加密信息B与PN码再次进行异或运算(相当于解调),得到原始信息A。
这个就是直接序列伪随机码扩频的基本过程,也是码分多址的基础。这个是通信工程专业的内容,大四选修有一门《扩频通信》里面讲得很明白。
我估计ssffzz1没学过通信,所以看不明白bbjmmj的意思,也不明白这意味着什么——这个就是SSSD-CDMA(也就是联通卖给电信的那个CDMA)的本质。
ssffzz1和bbjmmj所说的“加密”不是一回事。bbjmmj说的更广义,是除了计算机圈子以外公认的“加密”定义。ssffzz1说的那个“加密”必须以可逆运算为前提,只有搞计算机的人才这么狭义地理解“加密”二字的含义。

至于我说的那个意思,我估计ssffzz1没明白。
我不用Hash产生的PN码调制信息,我就是用Hash运算本身处理信息。
1、将明文拆成一段段小的明文,每段明文ai都在集合空间A内。
2、输入信息ai的集合空间A是输出信息bi的集合空间B的子集时,我想问,Hash输出能否保留原来的全部信息量,并且能够实现一对一或一对多的对应关系?
3、如果是,那么这种处理虽然不是可逆的,但是它不丢失信息,它可以将信息以另一种形式表达。我觉得能实现这个功能就是加密。
4、不可逆无非是不好解密而已,不是不能解。我写一份穷举集合A~集合B对应关系的对应表,自己查表解密就好。
这里面涉及了对信息的计量,《信息论》里面有详述,是通信工程大三的专业必修课。

没错,我的那个意思是有点抬杠,没有太大的实际操作性。现代加密理论执著地找一个可逆的运算(当然在处理前后不能丢失信息),就是为了解密方便,而不是其他什么原因。
当量子计算机实用了以后,我想,现代加密理论就该执著地找一个不可逆的不丢失信息的运算了。
凡事没有绝对。

我的论述第2步是一个疑问句,所以我会再找找资料。

论坛徽章:
0
2 [报告]
发表于 2008-10-18 11:00 |只看该作者
学习一下。

在新闻区读过楼主的几个贴子,难得有学通信/计算机的有这样的表达能力,思路很清晰。

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-07-05 06:20:00
3 [报告]
发表于 2008-10-18 11:23 |只看该作者
谢谢。互相学习。新闻区那边的是忍不住手痒写的~

论坛徽章:
9
技术图书徽章
日期:2014-10-14 15:48:13数据库技术版块每日发帖之星
日期:2015-06-04 22:20:00数据库技术版块每日发帖之星
日期:2015-06-10 22:20:00数据库技术版块每日发帖之星
日期:2015-06-11 22:20:00数据库技术版块每日发帖之星
日期:2015-06-13 22:20:00IT运维版块每日发帖之星
日期:2015-09-22 06:20:00IT运维版块每日发帖之星
日期:2015-12-08 06:20:00综合交流区版块每日发帖之星
日期:2016-02-02 06:20:00IT运维版块每日发帖之星
日期:2016-07-25 06:20:00
4 [报告]
发表于 2008-10-18 14:45 |只看该作者
顶楼主!还是楼主说得明白,专业的跟业余的,讲出来的话确实不一样啊

我说的方法主要用在实时性较高的系统里,程序上一般没有那么做的,那个SHA-1运算量实在太大了,不过程序也有程序的用法,PPTP里面SHA-1加RC4的算法用得就非常不错,既安全,又能保证速度。

论坛徽章:
0
5 [报告]
发表于 2008-10-19 14:17 |只看该作者
现在的hash算法是多对一的,必然存在碰撞。对于lz说的输入是输出的一个子集的情况,则是输入是有限的,输出也显然是有限的,这样的加密是可行的,但就我的理解不见得是安全的。

至于量子计算机和现代密码学,则是物理加密和数学加密之争了

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-07-05 06:20:00
6 [报告]
发表于 2008-10-19 19:27 |只看该作者
偶然想到一件事:
    通信里讲信息编码的时候,有“码距”这个概念,就是说在输入集合中,不是每一个元素都要使用,只使用其中的一部分元素,且这些被使用的元素之间的差异(就是“码距”)比较大,可以提高容错性。
    这提醒我,在对原始信息编码的时候,不是每一个输入元素我都要用。这样,在输入是输出的子集的情况下,即使仍然有碰撞,也不足为惧。一方面碰撞很少,另一方面可以把碰撞列举出来,在编码和解码的时候不使用会发生碰撞的元素。

偶然想到,写下来。我的第二个步骤那个疑问句,现在还是疑问句,我仍然没有答案。

论坛徽章:
0
7 [报告]
发表于 2008-10-19 20:07 |只看该作者
原帖由 cheveu 于 2008-10-19 19:27 发表
偶然想到一件事:
    通信里讲信息编码的时候,有“码距”这个概念,就是说在输入集合中,不是每一个元素都要使用,只使用其中的一部分元素,且这些被使用的元素之间的差异(就是“码距”)比较大,可以提高容 ...


你说的这个信息量......

小于 md5 分组的块不可以直接 Hash 吧? 不是要填充么?填进去的算信息不?

论坛徽章:
0
8 [报告]
发表于 2008-10-19 20:21 |只看该作者
2、输入信息ai的集合空间A是输出信息bi的集合空间B的子集时,我想问,Hash输出能否保留原来的全部信息量,并且能够实现一对一或一对多的对应关系?


你这个想法跟用 md5 来作流密码又不一样。是想直接把 md5 当加密算法了。

  •   无论 md5 和 sha-1 都没有保证是置换;
  • 只要是 Hash 算法都会在设计上使逆转非常困难,所以即使上面一条能保证,也没有意义。因为你不知道如何把信息提取出来。
  • 你打算把密钥放在哪里?接在明文后面?


[ 本帖最后由 win_hate 于 2008-10-19 20:52 编辑 ]

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
9 [报告]
发表于 2008-10-19 20:43 |只看该作者
我也纳闷这个问题。咋用MD5去做加密算法,有咋样才能够确定出那些是碰撞的。

可他们总说我不专业。

论坛徽章:
0
10 [报告]
发表于 2008-10-19 21:49 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP