查看: 2789|回复: 0

TinyTEE系列之五:手把手教你使用TinyTEE的数据加解密功能

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3302

    主题

    6549

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32045
    最后登录
    2024-4-29
    发表于 2020-6-1 13:15:08 | 显示全部楼层 |阅读模式
    TinyTEE系列之五:手把手教你使用TinyTEE的数据加解密功能




    本文是TinyTEE系列文章的第五篇,系列文章组成如下:

    《TinyTEE基本功能介绍》
    介绍TinyTEE的基本功能及特点、TinyTEE解决了哪些物联网安全风险。
    二《TinyTEE与云服务,软硬结合保障物联网设备全链路安全
    介绍如何将TinyTEE与物联网云服务结合,研发高安全等级的物联网产品。
    三《TinyTEE与OTA,如何为LPC55Sxx安全远程升级?
    介绍如何将TinyTEE与固件升级功能结合,实现高安全等级远程升级方案。
    四《手把手教你使用TinyTEE的安全存储功能
    介绍TinyTEE安全存储功能的方案实现与应用。
    五《手把手教你使用TinyTEE的数据加解密功能》
    介绍TinyTEE数据加解密功能的方案实现与应用。


    1、简介

    在互联网的世界中,我们在购物网站购物、用社交软件聊天、工作中收发邮件都需要进行身份登录认证,并且我们的密码、交易信息、聊天及邮件内容都是经过加密处理后才在网络上传输的。

    物联网世界也是如此,我们现在可以通过手机APP控制许多智能硬件了,小到一个智能灯泡,大到冰箱、洗衣机、智能汽车,这些硬件在连接云平台后也要做身份登录认证,APP对他们控制时的数据也要做加密处理。

    那么认证与加密处理是如何实现的呢?其实有几种密码算法为我们解决了这些问题。


    加密解密很好理解,数据发送方使用密钥将一串明文数据进行加密运算,将运算后的密文发送给接收方,如果没有准确的密钥,是无法通过密文反向推算出明文的。接收方使用密钥解密,可以得到明文。
    加解密算法可以分成两种,对称算法和非对称算法。对称算法指的是通信双方使用相同的密钥进行加密和解密,DES、3DES、AES均是对称算法;非对称算法指的是通信双方使用不同的密钥进行加密和解密,如RSA、ECC等。
    字签名算法可用来对联网设备、数据做“签名”,发送端持有私钥,接收端持有公钥,发送端利用私钥对数据“签名”处理,接收端收到后利用公钥对数据做“验签”处理。私钥只有签名者自己知道,其他人不可能构造出正确的私钥,如果接收端“验签”通过,那么一定是合法的发送端发来的数据。

    “签名”后的信息可用于做信息认证,TinyTEE中安全启动的bootloader会验证固件的合法性,其中就用到了数字签名算法,只有经过有效私钥签名的固件才是合法固件,私钥由固件开发者保存,不可泄露。常用数字签名算法包括RSA、DSA、ECDSA等。
    单向散列函数可根据数据内容计算出其对应的散列值,无论数据是1比特,还是100MB、100GB,单向散列函数都可以计算出一个固定长度的散列值。源数据中如果有一个比特位发生变化,则计算出的散列值也会发生巨大变化。
    向散列函数可用于验证数据的完整性,发送数据时将源数据及对应的散列值一同发送给接收端,接收端可以通过单向散列算法验证数据是否被篡改。常用的单向散列算法包括MD5、SHA等。
    随机数生成算法的作用在整个密码学中非常重要,几乎处处需要用到,比如生成密码、生成密钥对、生成密钥等。良好的随机数生成算法需要具备随机性、不可预测性及不可重现性3个特点。

    随机性指的是生成的随机数序列是杂乱无章的;不可预测指即使知道过去所有的随机数序列,依然无法预测下一个生成出的随机数;不可重现指的是除了将这次的随机数列保存下来,没有任何办法重现该数列。这三种特性越往后,对算法的要求就越严格。
    物联网应用方案中,我们常常以为“安全=加密”,通过以上各类密码算法功能的分析我们可以知道,只为数据做加密是远远不够的,只有将各类密码学算法结合使用才能实现完整的安全解决方案。

    2、TinyTEE的加解密功能


    TinyTEE加解密功能就是为用户提供一套完整的“密码学工具箱”,这个“工具箱”提供对称加解密算法、非对称加解密算法、单向散列函数、数字签名算法、真随机数生成算法给用户使用。用户不用关心实现细节,直接调用标准的接口即可。
    其中签名、验签、密钥交换等需要做椭圆曲线计算的算法由于需要进行大数运算,在低资源芯片上用软件实现运行速度非常慢,而基于LPC55SXX系列处理器的密码学硬件加速器CASPER,TinyTEE可以提供相比软件实现快4-8倍的硬件非对称算法,这极大提高了非对称运算的运行效率。
    另外,对于随机数生成算法,仅靠软件是无法生成具备不可重现性的随机数列的,因为运行软件的处理器本身具备有限的内部状态,内部状态相同时,软件必然只能生成相同的数。TinyTEE基于LPC55SXX系列提供的硬件真随机数生成器对外提供随机数接口,保证了随机数的随机性、不可预测以及不可重现性。
    下图是TinyTEE基于LPC55SXX系列处理器实现的加解密框架:
    1.png


    3、支持接口

    TinyTEE中数据加解密的接口遵循GP规范开发,支持的接口如下:

    2.png

    4、视频演示






    文章出处:恩智浦MCU加油站
    签到签到
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-29 12:42 , Processed in 0.107830 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表