知道明文 密文 能推导出加密方式? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
jzjjzj
V2EX    程序员

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    至于非对称加密,是指使用秘钥对来加密解密的过程,秘钥对的其中一半用来加密,另一半用来解密,非对称的意思是这里来的。
    legiorange
        62
    legiorange  
       2020-05-19 14:50:16 +08:00
    @qwertyegg 感谢指教
    james19820515
        63
    james19820515  
       2024-08-20 09:23:41 +08:00
    有结论了吗?
    424778940
        64
    424778940  
       263 天前
    @legiorange
    md5 是摘要算法 跟加密无关 跟 sha 同一类型
    对称加密是用同一把密钥
    非对称加密是分公私钥对
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2488 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 10:48 PVG 18:48 LAX 02:48 JFK 05:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86