• sugar
    2020-12-05
    “大部分情况下,我们自行发明的密码学算法都是灾难。”有关这句,想问一下:我的理解是需要加一个前提,自行发明的算法程序可以被外部获取到大量明文密文对儿,从而逆向推导我的算法。 我想讨论的是,如果这个算法在某个系统的服务端内部,整个服务端代码只有我一个人有权限,对外输出的 可被客户端访问到的东西 只有大量的密文,这种情况下外界是否有可能攻破我自己发明的这个脆弱的加密算法呢?

    作者回复: 你就不嫌麻烦吗?你放心,你的老板放不放心?你的老板放心,股东放不放心?股东放心,客户放不放心?客户放心,你家人放不放心?麻烦比你想象的多。 请看文章“什么是加密?”这一部分的前半段,尤其是下面的话:“当初算法的设计者还健在吗?当初算法的实现者还健在吗?算法实现的代码还在吗?算法运行的环境还在吗?解决掉其中任何一个问题,我们就能破坏掉算法的保密性。” 这些都比逆向推导简单。更何况,王母娘娘还能请你去蟠桃会吃酒喝茶。当然,逆向推导和破解128位的密钥比起来,也不是一个数量级的难度。只不过,的确没有必要逆向推导,找到你就行了,软的不行就来硬的,你保守秘密,你就承担责任(换句话说是风险)。

    共 9 条评论
    9
  • 天天有吃的
    2020-12-04
    问题3:密钥是怎么产生的,密钥可以通过加密算法得到吗,那么如果加密算法是公开的,密钥是不是也就能知道了?

    作者回复: 这是一个好问题,密钥不能单纯地通过加密算法得到。我们后面还会讲密钥是怎么产生的。

    共 2 条评论
    5
  • Litt1eQ
    2020-12-04
    默认情况下,网络通信的信道是不可信的,在不安全的信道中传输对称加密的密钥是一个比较麻烦的问题

    作者回复: 所以,千万不要在不安全的通道传输对称密钥;甚至,也不要在安全的通道传输对称密钥。

    
    5
  • ifelse
    2022-11-04 来自美国
    对称秘钥保存在了项目配置文件里

    作者回复: 哈哈,这个问题很常见吗?

    共 2 条评论
    2
  • qinsi
    2020-12-04
    Telegram的MTProto协议据说用了自己发明的算法。另外微信仿照TLS1.3开发的mmtls,据说使用的都是公开的高强度算法,那就不算是自己发明加密算法了吗?

    作者回复: 没太明白这个问题。“自己发明的算法”当然是“自己发明的算法”。我不了解这两个协议,不知道它们有没有发明“加密”算法。

    共 4 条评论
    2
  • Geek_32fc10
    2022-07-15
    攻击者在不知道对方使用的什么加密算法的情况下,只能暴li破解吗?

    作者回复: 不用费劲去破解,找个人问问就行了。

    
    1
  • 追风少年
    2020-12-14
    现在项目里都是明文的密码,日志,数据库全中,尴尬😓

    作者回复: 嗯,不惊讶。 快想办法吧。

    
    1
  • 孜孜
    2020-12-04
    我们公司的旧项目,会往cookie里面写入加密信息。比如accountinfo,然后Java code会用一个common的jar去解密。虽然没有研究过,不过可能不是公开算法。。

    作者回复: 是不是在cookie里写入机密信息?需要注意的是,使用公开的算法,不算是自己发明算法。

    
    1
  • 天天有吃的
    2020-12-04
    问题2:哈希跟加密验证数据方式有些不同,似乎都是把原本的数据处理成难以解释的数据,这两个难以解释的结果有什么区别吗?

    作者回复: 哈希逆向运算困难,加密可以逆向运算。

    
    1
  • 第一装甲集群司令克莱...
    2023-03-26 来自北京
    学起来!
    
    1