视频
在当今世界,安全性的三大支柱是机密性、(数据)完整性和认证(即“C.I.A.”)。幸运的是,Atmel CryptoAuthentication加密引擎具有安全的密钥存储,可以在系统中提供所有这三大支住。
着眼于机密性这一支柱,在对称系统中,两端共享的加密和解密密钥在每一次加密/解密会话后进行更改是十分有利的。该过程被称为对称会话密钥交换,有助于提供更高级别的安全性。有道理,对吧?
所以,让我们看一下如何使用 ATSHA204A CryptoAuthentication设备的功能创建这样的更改密钥。密钥随每次会话更改的方式是每个会话使用一个新的(和唯一的)随机数,该随机数通过所存储密钥进行散列(参见下图编号1)。如果ATSHA204A设备中所存储密钥没有更改,每个会话中使用的密钥(会话密钥)将更改。也就是说,显然没有两个会话是一样的。
下面的视频将指导您完成这些步骤,或者您可以简单地看看流程分解图。
所存储密钥和随机数进行散列后创建的会话密钥被发送到微控制器上(编号2)并被微控制器作为AES加密密钥以使用AES算法加密数据(编号3)。然后,加密数据和随机数(编号4)被发送到另一端。
在讨论下一话题之前,让我们在继续研究更多的细节。会话密钥是32字节消息认证码或“MAC”。(MAC被定义为密钥和消息的散列)。32字节(256位)消息认证码中的16字节变成了发送到微控制器的AES会话密钥,以对要加密的数据运行AES加密算法。
发送加密代码的理由显而易见,但是为什么还要发送随机数?这就是该流程的神奇之处。通过使用相同的SHA-256散列算法和储在解密端ATSHA204A(编 号5)的密钥运行随机数,该随机数可用于重新创建会话密钥。因为这是一个对称操作,存储在两个ATSHA204A设备上的密钥是完全相同的,因此,当相同 的随机数与相同的密钥采用相同的算法进行散列时,产生的32字节digest将与解密端和加密端完全相同。就像在加密端,只需要用16字节的散列值(即消 息认证码)表示AES加密/解密密钥(编号6)。此时可以在接收端的微控制器上使用这些16字节解密消息(编号7)。
所以,就是这样!
注意 ATSHA204A 为何让这个过程变得很简易,是因为它能够存储密钥、生成随机数并创建digest。这是我们称之为加密引擎的原因!它能够进行大量的加密工作,但只需使用Atmel广泛的工具对SHA204A进行简单的配置。
更何况,这些设备都很小、低功耗、经济,可与任何微型设备配合,最重要的是密钥存储在超安全硬件中,有强大的安全性。通过提供易用的、高度安全的硬件密钥存储加密引擎,很容易就能发现Atmel如何保护您。