有没有一种密码，就算把加密方式告诉你，也无法破译，或者说破译的代价很高?
这是现代密码学的基本要求。

事实上，仅仅满足“就算把加密方式告诉你，也无法破译”的加密算法，在现代密码学界/工业界看来是不合格。

说的更形象些，现代加解密算法需要满足如下要求：

- 加解密算法本身公开，只有密码本身需要保密

- 不知道密码的前提下，除了暴力穷举，无法从密文恢复明文

- 不知道密码的前提下，除了暴力穷举（后面就不写这句话了，太罗嗦），无法利用已知的明文和密文反推密码。  

- 比如，你用aes算法加密“这是明文”四个字，得到了密文“^(*%&%$%$%XFG”，那么没有任何办法猜到你使用的加密密钥。  

- 哪怕你通过某种手段，得知了几百万字节的明文-密文对照表，仍然无法对密码本身造成任何威胁。    

- 换句话说，明文-密文-密码三者之间，不存在任何统计学联系（比如如果密码包含3个0，则密文中特定字母组合出现的频率就提高0.15%之类）。

- 已知明文和密文，无法修改密文。  

- 比如，明文是“张三欠李四5块钱”，密文是“%&%^&ASDGO(*123”，那么除非知道密码，否则你没有任何手段修改密文、使得它的解密结果是“李四欠张三5块钱”。  

- 同样的，你哪怕得到了几百万甚至更多的明文-密文对照表，也没有办法在不知道密码的前提下随心所欲的修改密文。

- 加解密算法需要能够抵抗当前已知的任何攻击手段。

现代密码学是为军事、商业目的设计的，从一开始就考虑了“敌对国家破坏”问题；“通信信道被敌方全程监视”是现代密码学的默认设定——只有在最严苛的敌对环境下仍然有效的密码算法，才会被吸纳为标准加密算法；而且，一旦有任何可能威胁到算法安全性（不管哪个方面）的、新的攻击手段出现，受影响的算法就会被淘汰。