• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jzjjzj
V2EX  ›  程序员

知道明文 密文 能推导出加密方式?

  •  
  •   jzjjzj · May 18, 2020 via iPhone · 13094 views
    This topic created in 2364 days ago, the information mentioned may be changed or developed.
    64 replies  •  2025-04-02 11:34:19 +08:00
    reus
    reus
    May 18, 2020 via Android
    1
    不能
    exiaoxing
    exiaoxing
    May 18, 2020❤️1
    2
    明文:a,密文:z,请问加密方式是什么?
    虽然不太懂加密,但是至少样本很少的情况下,肯定是推不出来的吧
    菜鸟一枚,大神勿喷
    Mithril
    Mithril
    May 18, 2020❤️1
    3
    少部分加密方式可以。
    QingXuJiaZhi
    QingXuJiaZhi
    May 18, 2020❤️1
    4
    可能根据加密后的长度变化能做一个猜测(但只是猜测)。另外,根据现代加密理论,知道加密方式也没多大意义。
    imkuang
    imkuang
    May 18, 2020
    5
    你需要去学习《信息安全概论》
    MadHouse
    MadHouse
    May 18, 2020 via Android❤️1
    6
    @Mithril 相反,样本多了才能推导破解,样本太少的话无法推导
    myd
    myd
    May 18, 2020❤️1
    7
    不能推导出来。但可以猜
    Mutoo
    Mutoo
    May 18, 2020
    8
    某些古典加密算法,不抗频率攻击的,是可以返推现密码表的。例如凯撒加密。现代加密算法基本上都没办法用这种方式进行反推。
    QingXuJiaZhi
    QingXuJiaZhi
    May 18, 2020
    9
    @exiaoxing 比如 “明文:a,密文:z” 这种,由于明文与密文的长度一模一样,因此加密方式有可能是简单的字典映射。
    imaning
    imaning
    May 18, 2020
    10
    从密文格式和长度上能判断个大概,也只是个大概。
    DGideas
    DGideas
    May 18, 2020
    11
    补充 #5 @xiri,推荐另外一本《应用密码学:协议、算法与 C 源程序》
    QingXuJiaZhi
    QingXuJiaZhi
    May 18, 2020❤️1
    12
    @Mutoo 呃,看到你这个回复我才发现,我还以为楼主问的是加密算法的种类…… 现在想想,他可能问的是完全破解整个加密系统。
    stoneabc
    stoneabc
    May 18, 2020
    13
    你这就是 CPA 嘛。。可以去搜一搜密码学几种攻击方式。 也可以 @geelaw
    shoaly
    shoaly
    May 18, 2020
    14
    加密算法设计之初就是要防止楼主这种人, 所以就看加密算法厉害 还是楼主厉害了
    Pythondr
    Pythondr
    May 18, 2020
    15
    看复杂度,早期的对称加密却是有反推的可能,不过需要大量的数据集作支撑
    legiorange
    legiorange
    May 18, 2020❤️1
    16
    1:密码加密分古典和现代
    2:古典可以现代不行,比如古典的凯撒密码,猪圈(共济会)密码加密简单解密容易,有明显特征。现代密码 AES 加密光加密方式就几种,要是能蒙到一个 CBC 对称加密还可能
    3:为什么不行楼上大佬们说也说完了我的看法是这样的:

    加密分对称加密和非对称加密。

    对称加密多可逆,可以通过明文攻击猜出来(我见上面提到 CPA 了),直接用工具解密试试看,问题万一加盐了?啊这……

    非对称加密,比如 MD5 这有固定特征的你还可能搞定。纵观 sha 家族……也就几个的特征比较容易看。

    加密算法有很多种,问题是你根本没法确定人家只用了一种?万一是 AES+RSA(有的 3 层)你怕是要推死在这。

    我曾经看过国外大佬们一起解密这种“谜题”的时候真的是全靠经验……
    locoz
    locoz
    May 18, 2020
    17
    能,先搞台量子计算机
    ZRS
    ZRS
    May 18, 2020
    18
    不太行,只能猜猜
    Vanquish5419
    Vanquish5419
    May 18, 2020
    19
    本质就是给你 x,y,然后推导出关系,样本量足够的话就可以
    locoz
    locoz
    May 18, 2020
    20
    @locoz #17 补充一下:目前一般的加密算法理论上是可以被量子计算机快速爆破的,但如果是抗量子密码,那量子计算机也没辙。
    不管怎样,首先你得有台量子计算机
    wangkun025
    wangkun025
    May 18, 2020
    21
    能。
    不然我楼梯为啥被封啊
    PopRain
    PopRain
    May 18, 2020
    22
    @legiorange 对称加密可以猜出密钥?像 DES 这种现代加密办法,不加盐个人也不可能逆向出密钥的。。。。
    Ehend
    Ehend
    May 18, 2020 via Android
    23
    你可以建个神经网络,正好你知道输入输出,映射关系让神经网络自己去找吧。不过这个前提就是大样本
    shiltian
    shiltian
    May 18, 2020
    24
    Known-plaintext attack or chosen-plaintext attack or chosen-ciphertext attack
    shiltian
    shiltian
    May 18, 2020❤️1
    25
    @wangkun025 楼梯被封是 pattern recognition 甚至还没这么高端(比如一些 IP 段一看就是几个目标机场,宁可错 reset 一千不可放过一个),而不是你加密的流量被破解了。
    zeocax
    zeocax
    May 18, 2020 via Android
    26
    @wangkun025 墙又不需要知道你的加密方式,只需要流量特征像就可以了
    wangkun025
    wangkun025
    May 18, 2020
    27
    @zeocax 多谢大神指教。
    我听说某些加密算法更加容易被识别。
    看来是我天真了。
    多谢。
    jugelizi
    jugelizi
    May 18, 2020 via iPhone❤️1
    28
    2+2=4 。
    2x2=4 。
    请问你知道明文 密文 怎么证明用的算法
    FFFire
    FFFire
    May 18, 2020
    29
    足够的样本,专业的团队,能提升成功率
    wang93wei
    wang93wei
    May 18, 2020
    30
    机器学习,,,在你有足够样本的时候卷积神经网络能自己解开
    legiorange
    legiorange
    May 18, 2020
    31
    @PopRain 但可惜不能,比较好的是大部分服务基本菜用一个密钥。
    legiorange
    legiorange
    May 18, 2020
    32
    @PopRain 当初 3DES 加密的文件我就用 winhex 搞得,没什么不可能.
    Hanggi
    Hanggi
    May 18, 2020
    33
    虽说不是无懈可击,但是那么容易就能搞清楚的话,这些加密手段怎么会活到现在呢?
    qwertyegg
    qwertyegg
    May 18, 2020❤️1
    34
    @locoz 你说的大概是 Shor 算法,来破解椭圆曲线加密的离散对数和 RSA. AES-256 这种是不怕量子计算机的
    zoffy
    zoffy
    May 18, 2020
    35
    二战时期,剑桥的数学家干过这个事情
    otakustay
    otakustay
    May 18, 2020❤️1
    36
    @legiorange 对称非对称不是你这么分的……MD5 就不是加密算法,既不是对称的也不是非对称的
    Mithril
    Mithril
    May 18, 2020
    37
    @MadHouse 我说的是少部分加密方式,唉。。。
    janxin
    janxin
    May 18, 2020
    38
    如果有明文,密文和对应的密钥,初始化向量等一切入参,推导已知加密方式(目标一定在范围内)是可行的。大不了暴力跑一遍加密,匹配上了就是的。不过这种分析方法一般过于理想,比如一种加密方法需要运行 N 遍,如果你不知道需要跑几遍肯定这种分析是没用的。

    另外讨论分析加密方式怎么会转进到密钥了...对已知加密方法的,可以使用差分密码分析方法,不过前提是加密已知,很多算法也无法使用这种攻击方法。
    janda
    janda
    May 18, 2020
    39
    要是密上密呢:
    明--->密(MD5)--->密(SHA512)
    xd314697475
    xd314697475
    May 18, 2020
    40
    根据我安全课老师的 ppt,简单的加密方式是可以被推导出来的,利用的是纯密码学原理

    还有一种方法是机器学习(包括深度学习),分析加密算法特征,这个也是一条路子
    vvtoo
    vvtoo
    May 18, 2020
    41
    想到一个无关但有趣的话题: https://www.v2ex.com/t/303036
    msg7086
    msg7086
    May 18, 2020 via Android
    42
    @legiorange 兄弟可以先了解下非对称加密是什么。
    yidinghe
    yidinghe
    PRO
    May 18, 2020
    43
    如果使用了多次加密,猜都很难猜,你不但要知道用了哪些加密方法,还要知道它们的顺序。
    yidinghe
    yidinghe
    PRO
    May 18, 2020
    44
    @janda 那是摘要算法(hash function),不是加密,加密(encryption)是可以解密(decryption)的,任何加密手段(cipher)都有对应的解密手段(decipher)。

    https://en.wikipedia.org/wiki/Encryption
    https://en.wikipedia.org/wiki/Hash_function
    lvybupt
    lvybupt
    May 18, 2020
    45
    不能。
    ormand1bd
    ormand1bd
    May 18, 2020
    46
    不能
    rb6221
    rb6221
    May 18, 2020
    47
    理论上是不能,但是有一套方法论可以提高概率,在场景固定和熟悉的情况下,靠猜的方式还是有比较高的概率猜对的
    Still4
    Still4
    May 18, 2020
    48
    任何不可逆算法加点盐你就没法

    比如 明文=abc 密文=md5(sub(md5('abc'),4,8)+'test')
    你怎么能通过密文和明文知道这个算法,而且还知道盐=test
    Jooooooooo
    Jooooooooo
    May 18, 2020
    49
    不能, 已知把 1 到 1w 的数字都映射成 a 了

    你猜猜我的加密方法是什么?

    (答案是我把 10001 映射成了 b, 其他数字都是 a
    tsui
    tsui
    May 18, 2020
    50
    @Still4 你这个不是加密而是 hash,从密文是无法解密(还原)出明文的。
    ajaxfunction
    ajaxfunction
    May 18, 2020
    51
    扔个骰子,如何推导出是几?
    当然无法推导出来,但是可以猜出来
    julyclyde
    julyclyde
    May 18, 2020
    52
    如果能的话说明这个算法的特征过于明显了
    slanternsw
    slanternsw
    May 18, 2020 via Android
    53
    这..这不就是“存在一个黑箱函数,已知部分给定的输入和相应的输出,问能不能推导出这个黑箱函数”

    结论上面已经有了,不存在通用的方法,部分情况下可以猜.
    akira
    akira
    May 18, 2020
    54
    有些可以
    Johnny168
    Johnny168
    May 19, 2020
    55
    你想推导出来不过就是为了解密,电脑配置好点的直接跑字典算了
    legiorange
    legiorange
    May 19, 2020
    56
    @otakustay 那具体是神马。。。
    legiorange
    legiorange
    May 19, 2020
    57
    @msg7086 啊这,才疏学浅也没搜到什么还是比较模糊,那么 MD5 和非对称算法究竟有什么区别? MD5 本身是不可逆的,那么他也不算是对称也不算是非对称的话他究竟是……?
    Cmdhelp
    Cmdhelp
    May 19, 2020
    58
    这个不好说,有的还真可以。。。 刚遇到过, 组合的明文,密文 32 位,,,试了一下 md5,,果然是,节省了继续逆向挖掘的时间
    qwertyegg
    qwertyegg
    May 19, 2020❤️1
    59
    @legiorange MD5 sha-n 算 hash,跟加密解密不是一回事.更不用说对称非对称加密.
    co2fe
    co2fe
    May 19, 2020
    60
    个人觉得
    只要样本数量足够的多,比如说无穷大
    理论上应该是可以推倒出加密的方式的
    实际上估计不可能
    只要有点复杂度的加密方式在现实中就很难有人会去花时间去推导,但是理论上是可以的。
    msg7086
    msg7086
    May 19, 2020❤️1
    61
    @legiorange MD5 不是加密,是摘要 /哈希。
    加密,这个词本身就隐含着「可以解密」。

    摘自维基百科的词条:在密码学中,加密(英语:Encryption )是将明文信息改变为难以读取的密文内容,使之不可读的过程。只有拥有解密方法的对象,经由解密过程,才能将密文还原为正常可读的内容。

    注意这里的「经由解密过程」。一个算法被称为加密算法的前提就是加密后可以解密。

    至于非对称加密,是指使用秘钥对来加密解密的过程,秘钥对的其中一半用来加密,另一半用来解密,非对称的意思是这里来的。
    legiorange
    legiorange
    May 19, 2020
    62
    @qwertyegg 感谢指教
    james19820515
    james19820515
    Aug 20, 2024
    63
    有结论了吗?
    424778940
    424778940
    Apr 2, 2025
    64
    @legiorange
    md5 是摘要算法 跟加密无关 跟 sha 同一类型
    对称加密是用同一把密钥
    非对称加密是分公私钥对
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1878 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 151ms · UTC 07:16 · PVG 15:16 · LAX 23:16 · JFK 02:16
    ♥ Do have faith in what you're doing.