天创培训:您身边的信息安全培训专家!
行业动态
工业网络安全趋势:公钥加密

  消除不必要的恐惧,通过公钥加密对工业网络安全采取积极主动的态度。


  公共密钥加密用于网络安全,并且在工业自动化领域得到越来越多的应用。大多数人都熟悉加密,加密本质上涉及到对数据进行拼接,并使有意义的数据显示为位、字节或字符的随机序列。


  这是一个简单的过程,通过这个过程对数据进行加密、传输,然后使用共享私钥进行解密。由于采用相同的密钥用于加密和解密数据,因此这被称为对称密钥加密。另外,由于密钥对公众保密,因此也被称为私钥加密。


  为什么工业领域不使用这样一个简单而安全的方法呢?因为这个模型有问题。发送方和接收方都必须共享密钥的副本。如果双方相距很远,比如说分布在两个半球上,那交换密钥将很困难。


  当然,发送方可以将密钥副本“ 邮寄” 给接收方,但在这个过程中可能会有人拦截该密钥,为自己制作副本,并开始 “ 监听” 对话。而这就是被称为非对称密钥加密的公钥加密发挥作用的地方。


  公钥加密的原理


  公钥加密指的是由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。它解决了密钥的发布和管理问题,是目前商业密码的核心。要解释公钥加密,请让我们以信件和保险箱为例。


  假设爱丽丝想给鲍勃寄一封保密的信。她可以把信锁在保险箱里,把上锁的保险柜寄给鲍勃。鲍勃用钥匙打开保险柜,然后就可以看到信。这本质上是对称 ( 私钥) 加密。但是,爱丽丝和鲍勃如何安全地共享密钥副本?


  爱丽丝有没有办法在不交换密钥副本的情况下,安全地把信寄给鲍勃?有的。解决方案包括创建两个密钥,一把是给保险箱上锁的公钥,一把是用于打开保险箱的私钥。


  继续以此为例,鲍勃拿起解锁的保险箱,创建了两把密钥,一把是私钥 ( 他保留的) 和一把公共密钥 ( 他寄给了爱丽丝)。鲍勃接下来拿着公钥和空的、解锁的保险箱,把它们都邮寄给爱丽丝。爱丽丝把她的信放在保险柜里,然后用鲍勃邮寄的公共秘钥锁上保险柜。爱丽丝把保险柜寄回给鲍勃,鲍勃用他的私人密钥打开保险柜,看信。假设有人复制了鲍勃发给爱丽丝的公钥。他无法打开保险柜,也看不了信。鲍勃给爱丽丝的公钥只能用来给保险柜上锁,而不能开锁。


  身份验证替代方法


  无论谁能访问公钥,爱丽丝都可以安全地将她的信发送给鲍勃。如果查理拦截了公钥,假装是爱丽丝打开安全锁,这样他就可以给鲍勃发送假信息了吗?这就是公钥加密的另一个好处,即身份验证。


  数字签名使用私钥加密特定数据,而用公钥进行身份验证。图片来源: MartinCSI


  鲍勃创建了私钥和公钥。但是,为了说明身份验证的工作原理,让我们举一个新例子。鲍勃仍然创建私钥和公钥。但是,爱丽丝也创建了自己的私钥和公钥。接下来,鲍勃和爱丽丝交换他们的公钥。爱丽丝把她的公钥寄给鲍勃,鲍勃把他的公钥寄给了爱丽丝。和以前一样,鲍勃把未上锁的保险箱发给爱丽丝。爱丽丝把她的信放在保险柜里,用鲍勃提供的公钥上锁。


  然而,这一次,爱丽丝还做了其它事情。她拿着自己的锁,把它应用到保险柜上,用她创建的私钥锁住。爱丽丝然后把保险箱寄回给鲍勃。这一次,在鲍勃用他的私钥打开保险柜之前,他首先拿了爱丽丝发给他的公钥,并试图打开爱丽丝的锁。如果鲍勃可以使用公钥打开锁,这个锁是爱丽丝使用她的私钥锁上的,那么鲍勃就知道这封信来自爱丽丝。此过程称为身份验证。爱丽丝应用于保险箱的锁可以被视为签名。


  更多的工业自动化设备正在采用公钥加密。此外,许多基于网络浏览器的监控和数据采集系统(SCADA)开始集成了HTTPs 网页支持功能,这也是基于公钥加密的。


  选择安全设备


  在现实世界中,我们如何创建公钥加密?有一种方法,与数学中一个有趣且非常困难的问题有关,将大数分解为素数。例如,考虑以下简单的加密算法: me mod N=c


  在这个方程中,m 是要加密的消息,e是用于加密消息的公钥,N 是两个质数 (N=P1*P2) 的乘积,c 是加密的消息。在我们的示例中,鲍勃选择主要整数P1 和P2,将它们相乘以计算出N。他还选择了公钥e。鲍勃随后将 e 和 N 发送给爱丽丝,同时他自己保留了P1 和P2。爱丽丝将她的消息 m 以及鲍勃发送的数字 (e 和N) 代入上述方程中,以生成她的加密消息c,她将这些消息发送回鲍勃。一旦鲍勃收到来自爱丽丝的加密消息c,他只需使用以下公式对其进行解密: cd mod N=m 即可找回原始消息。


  在这个等式中,他没有使用他发给爱丽丝的公钥e,而是使用他的私钥d 来解密消息。如果鲍勃且只有鲍勃能弄清楚d 是什么,那么这就行得通了。正好可以使用欧拉函数。(N) 计算 d, 其中d * e =k .N+1。 欧拉函数。(N) 的重要属性是被称为陷阱门的函数。对我们的示例这意味着,如果P1 和P2 是已知的,计算。(P1*P2) 很容易,但如果P1 和P2 不知道,则很难计算 。


  试图解密消息的人可能会考虑获取 N( 因为 N 是鲍勃已发送给爱丽丝的公开信息),将 N 分解为两个质数P1 和P2,然后解密消息。然而,将大数 N 分解为素数是非常耗时的。事实上很难实现,即使是使用超级计算机解决起来也不现实。这就是公钥加密背后的真正力量所在。鲍勃可以用多个P1*P2 来生成允许爱丽丝用于加密消息的数字N。但N 是否公开并不重要。解密消息还需要了解P1 和P2。只要鲍勃不公开这数字。


  在选择安全设备和配置安全设备时,对公钥加密的理解也很有帮助。了解安全性有助于消除不必要的恐惧。相反,还可以对网络安全采取更主动的方法。


  本文来自于《控制工程中文版》(CONTROL ENGINEERING China )2019年04月刊《技术进展》栏目,原标题为:公钥加密与工业网络安全