md5 如何实现雪崩效应的

quxinna 17天前 8

在密码学中,雪崩效应( Avalanche effect )指加密算法(尤其是块密码和加密散列函数)的一种理想属性。雪崩效应是指当输入发生最微小的改变(例如,反转一个二进制位)时,也会导致输出的剧变(如,输出中一半的二进制位发生反转)。在高品质的块密码中,无论密钥或明文的任何细微变化都应当引起密文的剧烈改变。该术语最早由 Horst Feistel 使用,尽管其概念最早可以追溯到克劳德・香农提出的扩散( diffusion )。
最新回复 (42)
  • ShuA1 14天前
    引用 2
    md5 是 hash 算法,不是加密算法
  • godpeo 14天前
    引用 3
    类似 乘以很大的数 很多次, 细微变化也引起大变。
  • loading 14天前
    引用 4
    楼主的好几个发帖都有 md5,然后居然还是说是加密算法,难道你找到逆向解密方式了吗?如果是的话,人类压缩算法可能要突破了。
  • yolee599 14天前
    引用 5
    md5 算法和密码学有关系?
  • v2sir 14天前
    引用 6
    关键是你想表达什么?
  • Vegetable 14天前
    引用 7
    @yolee599
    @ShuA1
    md5 不是加密散列函数?
  • jeanz 14天前
    引用 8
    @Vegetable MD5 只是计算散列值,不是加密的
  • nvkou 14天前
    引用 9
    哇!我几百 g 的文件可以“加密”成一串字符串。屌爆了!
    硬盘和网盘甚至冯诺依曼体系都是骗局!不信楼主现场帮我解密还原。
  • jhdxr 14天前
    引用 10
    @yolee599 摘要算法的确也是密码学范畴的
  • singerll 14天前
    引用 11
    楼上几位都在高潮什么,摘要确实属于加密算法,只不过不可逆。。
  • love 14天前
    引用 12
    @singerll 说同属加密学还差不多,有加密必有解密,否则能叫加密吗
  • mritd 14天前
    引用 13
    @singerll 你跟他们能讲明白算我输
  • LudwigWS 14天前
    引用 14
    网上搜索了一下,似乎称 MD5 为密码学哈希算法更准确,不符合狭义加密算法的定义
  • Rheinmetal 14天前
    引用 15
    找个密码学 mooc 看看吧 还能答疑多好
  • AoEiuV020 14天前
    引用 16
    不知道为什么讨论会变成 md5 是不是加密算法,
    我一直了解的都是加密算法分单向加密算法和双向加密算法,什么时候加密算法必须可以解密还原了,
  • pkoukk 14天前
    引用 17
    只能说 crypto 翻译成加密不太好,才导致了各种误解。
    加这个字会在潜意识里对应解,暗示了有加就有解。翻译成密码学就挺好
  • pkoukk 14天前
    引用 18
    看看隔壁数字货币就学的很聪明了,crypto currency 为啥不叫加密货币?
    叫加密货币大家就觉得这东西是隐秘化的东西了,但实际上却完全相反,所以他们并没有采用加密货币这种说法。
  • Vegetable 14天前
    引用 19
    最搞笑的是,楼主这段话是从维基百科复制来的,被各路大哥一顿嘲讽,先去把 wiki 修改了好吗?
    原文是 In cryptography, the avalanche effect is the desirable property of cryptographic algorithms, typically block ciphers[1] and cryptographic hash functions, wherein if an input is changed slightly (for example, flipping a single bit), the output changes significantly (e.g., half the output bits flip). In the case of high-quality block ciphers, such a small change in either the key or the plaintext should cause a drastic change in the ciphertext. The actual term was first used by Horst Feistel,[1] although the concept dates back to at least Shannon's diffusion.

    只不过是 cryptographic algorithms 翻译成了加密算法而已
  • exiledkingcc 14天前
    引用 20
    MD5 属于密码学( Cryptography )的内容,是密码学 hash 算法( Cryptographic hash function )。
    不能说是加密( Encryption )算法。
    加密( Encryption )指把明文( plaintext )编码( encoding )成为密文( ciphertext )的过程。
    相反,解密( Decryption )是指把密文解码为明文的过程。
  • marcong95 14天前
    引用 21
    v 站日常之 md5/base64 不是加密算法

    考虑到 18#的引用,再查了下 cryptographic algorithms 确实有翻译为加密算法的习惯,虽然可能不太贴切?以后是不是在 v 站这类话题还是别说中文了?

    @pkoukk #17 crypto currency 不是也挺多翻译成加密货币的么?毕竟要跟 Q 币这种“数字货币”区分开 ,那似乎要说“密码学货币”?
  • gaoryrt 14天前
    引用 22
    @love 某种程度上来说 hash 也有解密的,不过加密过程中损失的信息需要在理想彩虹表的筛选过程中补偿回来罢了
  • Flymachine 14天前
    引用 23
    计算 MD5 时,实际上算的是是“数据+填充字节+数据长度取模”。这样长度的变化必然会导致 MD5 计算结果的变化。至于每一位的变化如何引发 MD5 的变化,你可以理解一下核心的这四个变换函数:

    #define F(x,y,z) ((x & y) | (~x & z))
    #define G(x,y,z) ((x & z) | (y & ~z))
    #define H(x,y,z) (x^y^z)
    #define I(x,y,z) (y ^ (x | ~z))

    计算 MD5 时会把每一 512 字节的数据会分成 16 个小组,然后去做这 4 个变换运算,结果参与下一个小组运算。
    毫无疑问,只要数据中有一位发生了变化,变换函数的结果必然也会发生变化。在之后的运算中差异便会被累积起来,从而使结果出现较大的变化。

    我没学过密码学,所以没法说这四个函数是基于怎样的原理设计出来的。只能根据 MD5 的实现代码给你一些参考。
  • doublleft 14天前
    引用 24
    @marcong95 #20 给这个大哥逼( force )成啥样了
  • QBugHunter 14天前
    引用 25
    问个问题,楼主这个帖子是陈述句还是疑问句?
  • Flymachine 14天前
    引用 26
    话说目前 MD5 算法已经不安全了,王小云的研究,且现在已经有搞病毒搞流氓软件的在利用这项技术了。
    现在比较简单的散列算法里也就 SHA-1 还能用(虽然也不安全了),之后还是要换成 SHA-256 之类的高强度算法
  • nnnToTnnn 14天前
    引用 27
    cryptographic algorithms

    1. Hash functions
    2. Symmetric-key algorithms
    3. Asymmetric-key algorithms
  • agdhole 14天前
    引用 28
    别在代码里面把 md5 当加密用就行
  • sakura1 14天前
    引用 29
    借楼问一下,为什么我不能新建主题了
  • iyaozhen 14天前
    引用 30
    其实 MD5 就是要雪崩效应,稍微不一样 hash 出来的要不一样 不然就有规律了
  • BeautifulSoap 14天前
    引用 31
    论计算机领域里不靠谱翻译导致的各种没有意义的问题和争吵
  • hxndg 14天前
    引用 32
    @singerll

    @AoEiuV020

    @Vegetable
    @marcong95

    上学那会写密码学相关的论文的时候,我们一般都不说 hash 是加密,最多说个单向。
    因为 hash 就是 hash,hash 这几个字就明白的说明了 hash 的功能,而不是上来就说加密。
    名词选择的不准确会干扰听的人的理解。

    再说 lz 的题目说的是 md5 如何实现雪崩效应
    但是内容和题目完全不沾边,只是解释了雪崩是啥

    从本质来说上就是混淆和扩散,
  • yunyuyuan 14天前
    引用 33
    这都能吵起来
  • IvanLi127 14天前
    引用 34
    前面几楼怎么这么容易高潮。。。这算严谨过度了吧
  • felixcode 14天前
    引用 35
    楼主只想自问自答,自答完了就结帖了,把这当成了记事本,却没想到有这么多回复。
  • jhdxr 14天前
    引用 36
    @Flymachine sha-1 安全????
  • Flymachine 14天前
    引用 37
    @jhdxr “也就 SHA-1 还能用(虽然也不安全了)”,能用和安全是两个概念...
    毕竟不是每个领域都需要像金融业那么注重安全。虽然 SHA-1 已经不被推荐使用,但至少碰撞难度还是比较高的,说一句“能用”没啥差错吧?
  • jhdxr 14天前
    引用 38
    @Flymachine 目前,或者说从去年开始,就已经有针对 sha1 的选择性前缀的碰撞攻击( a chosen-prefix collision )了。我不认为在这样的情况下,这依然能够被认为是尽管不安全但还在能用的边缘。

    ref: https://eprint.iacr.org/2020/014.pdf
  • Flymachine 14天前
    引用 39
    @jhdxr 好吧,我没有关注这件事,4.5 万美金的破解成本确实不算太高了。看来只能上 SHA-256 或者 SHA-3 了...
  • unco020511 14天前
    引用 40
    @singerll hash 什么时候属于加密算法了?你自己去维基百科上看看加密的定义,md5 这样的摘要算法绝对不属于加密算法
  • singerll 14天前
    引用 41
    @unco020511 你看下国家密码局颁发的国密算法文件。。。
  • runliuv 14天前
    引用 42
    @exiledkingcc 6666
  • unco020511 14天前
    引用 43
    @singerll 贴出来看看
  • 游客
    44
返回