0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于移动安全存储的密码SoC设计与实现

电子工程师 来源:电子技术应用 作者:王雪瑞 何永强 公 2021-06-12 10:13 次阅读

摘要: 针对目前移动存储设备大量的失泄密事件,提出了一种适用于移动安全存储设备的密码SoC设计方案,并在FPGA开发板上进行了验证。该SoC集成自主设计的安全协处理器,能够支持多种密码算法。介绍了NAND Flash控制器的设计方案,并在此基础上提出了高速存取技术。基于FPGA的测试结果表明,该SoC能够有效完成多种密码操作,具有较高的数据吞吐率。基于SMIC 0.18 μm工艺综合后的结果显示,工作频率能够达到100 MHz,面积约为250万门。

移动存储产品已广泛应用于各行各业,是不可或缺的信息交换载体,特别在日常办公系统中,以U盘、固态移动硬盘为代表的存储介质的使用日益普遍。而在实际应用中,移动存储设备易丢失、易损坏、易染病毒、不可控的特性也使数据安全无法得到充分保证。因遗失、暴力破解、主动泄密、木马攻击等方式导致的泄密事件也在逐渐上升[1]。

为了解决这一问题,国内外已经研制出多款相关安全产品,但是这些安全产品大多采用单一算法或固定的几种算法,其灵活性和安全性都不够高,无法满足不同设计的安全需求[2]。

针对现有安全SoC存在的问题,本文基于高性能嵌入式CPU构建并设计了一款密码SoC平台。该SoC平台采用自主设计的安全协处理器执行密码操作,经验证可适用于三类主要的密码算法[3]:对称密钥加密算法、散列算法和公开密钥加密算法。此外,设计了高性能NAND Flash控制器,支持外接多种类型的NAND Flash芯片(SLC、MLC 和TLC),最大支持容量为160 GB。本设计可应用于加密U盘、加密U盘KEY、加密移动硬盘、高速加密流转接器等设备中。

1 硬件设计

1.1 系统架构

本文提出的密码SoC架构如图1所示。其中集成了两种处理器核,分别是通用处理器(LEON2)和4个安全协处理器(Security ASIP),两者通过系统总线相连。所有涉及加解密的运算都被映射到安全协处理器中执行。DMA控制器负责把将要执行的加解密任务按照CPU的配置分配到各安全处理器中,CPU只承担控制和部分数据传输任务,绝大部分的运算由安全协处理器完成,CPU在大部分时间处于挂起(suspend)状态,直到有中断将其唤醒。

片上存储器主要包括EFlash/SRAM,用于存储操作系统引导程序、用户程序等;物理噪声源主要用于产生真随机数,生成密码运算时的消息密钥;两个USB-OTG 接口可根据应用需求设置成Host、Device 或OTG,支持多达6 个端点,可设置成多重复合设备,最大限度地满足用户的设计需求;

NAND Flash控制器负责产生符合NAND Flash接口操作规范的时序信号,带有ECC校验模块,每512 B可修正位数为1 bit或8 bit,支持外接8片NAND Flash。另外还包含有低速通信接口定时器、中断控制器、存储保护单元、功耗管理单元等辅助模块,用于完成平台的其他功能。

面向移动安全存储的密码SoC设计与实现

1.2 安全协处理器结构

分析现有的安全存储设备[4]可以发现,在使用存储设备之前,必须对使用者进行身份验证;文件读写时,必须对数据进行加解密操作;为了保证数据的完整性,必须对数据进行完整性验证操作。所以,密码SoC必须能够灵活处理对称、公钥和杂凑三类算法,这个任务主要由安全协处理器完成。在进行安全协处理器的设计之前,必须对各类密码的执行特点进行分析。由专门的工具[5]分析可以得出各种密码算法的执行特点。

对各类密码算法的特点进行分析后,本文提出了如图2所示的安全协处理器架构。该安全协处理器基于传统的RISC处理器结构所设计,分为取指令(IF)级、译码(ID)级、执行(EXE)级/memory访存级和写回(write)级四级,能支持标准的RISC指令,并且还能执行一些专门设计的特殊指令。

在执行级,不仅有处理正常RISC标准指令的ALU单元,还有专用的硬件功能单元、PTLU(Parallel Table Look-Up)和MHU(Mul/Div unit&Hash Unit),用来对算法中比较耗时的运算(如查找表、模乘等操作)进行加速。为了加快安全协处理器的指令和数据的存取速度,在协处理器内部分别嵌入1 KB大小的指令RAM和数据RAM,用来存放协处理器的指令和数据。该协处理器指令集不仅包括标准的算术和逻辑运算指令,还包括专用的密码运算指令,如PTAES、 PTW、MOD_MUL等。

面向移动安全存储的密码SoC设计与实现

1.3 NAND Flash控制器设计

本文设计的NAND Flash控制器[7]结构如图3所示。NAND Flash控制器包含总线接口模块、DMA握手接口模块、控制状态机转换的主控逻辑模块,用以缓冲数据、收发命令和状态字的缓冲器(buffer);提供ECC校验纠错功能的ECC模块和直接控制NAND Flash存储体的接口模块。

面向移动安全存储的密码SoC设计与实现

总线接口模块负责接收CPU发送的指令,将收发数据送至相应数据寄存器和指令寄存器,并将状态寄存器内容返回给CPU核;主控逻辑模块负责整个Flash控制器的控制工作,包含指令、状态、配置、数据、页交换使能、错误地址等寄存器,是控制器的核心。

ECC模块主要负责对存入NAND Flash中的数据进行纠错编码并对从NAND Flash中读出的数据进行纠错译码的工作。DMA握手接口模块在系统DMA参与数据传输的情况下,负责DMA与NAND Flash控制器之间的硬件握手功能。相比与直接由CPU核发送命令字给NAND Flash,然后直接从I/O 口读写数据的工作方式,通过DMA方式的传输效率明显要高。

特别在连续读取大批量数据的情况下,这种工作方式的优点能更好地体现出来。在实际产品应用中(如数码照片的存取),读写数据量一般都是页大小的上千倍,所以这样的设计有助于提高产品的实用性。

该NAND Flash控制器支持外接8片NAND Flash芯片。为了提高数据的读写速度,实现对并行数据读写的支持,控制器的数据线位宽设置为16 bit,可以支持对两片数据线位宽为8 bit的NAND Flash的并行读写操作;同时,本设计对控制器的结构进行了优化,使其能够支持对多片NAND Flash芯片的流水线读写操作。为了更好地支持SLC、MLC和TLC NAND Flash器件,还设计了基于汉明码的1 bit ECC纠错模块和可纠正8 bit随机错误的BCH编/译码器,用户可以根据需要选择相应的ECC操作。

2 高速存储技术

NAND Flash器件属于低速设备。以K9WBG08U1M为例,芯片的写入时间分为加载时间和编程时间两部分,写满一页所需的命令、地址和数据的加载时间约为102.5 ?滋s,最大编程时间约为700 μs。在写入过程中,因还要进行BCH编码等操作,也会消耗一些时间,所以设计中,使用最大的编程时间进行计算,而单片Flash其写入速度最高也只有5.1 MB/s,NAND Flash的读写速度也会成为系统性能的瓶颈。为了解决这个问题,可以采用如下技术。

2.1 数据并行处理技术

因Flash的数据位宽一般为8 bit,如果按传统的操作方法对Flash进行读写,即写完一片NAND Flash之后再写下一片,其最高的存储速度只有5.1 MB/s,无法适用于高速数据传输的要求。为此,本文设计的NAND Flash控制器将I/O数据线设为16 bit,主控制可以通过配置来选择数据线的位数。

当需要对数据进行并行处理时,将两片低速Flash芯片并联起来,使用相同的控制线、片选和读写信号线,组成一个多位宽的Flash组;两片Flash并行工作时,一片存储数据的高8 bit,一片存储数据的低8 bit,这样,存储容量和存储速度都是单片Flash的2倍。

2.2 流水线技术

流水线技术在计算机领域得到广泛运用,它是提高硬件资源利用率和执行效率的有效手段,该技术可以有效提高存储系统的性能。本文设计的NAND Flash控制器中只有一个读数据FIFO和一个写数据FIFO,大小均为4 KB。

当对一片NAND Flash进行操作时,在命令或数据加载完成后,该片NAND Flash会处于忙状态,此时读或写数据FIFO由于处于空闲或等待状态未被使用,因此控制器可以继续对处于空闲状态的NAND Flash进行操作,如此便形成流水线操作。还可以把两片NAND Flash作为一组进行数据并行处理,共4组进行流水线操作,以达到最大的数据吞吐率。其流水写操作时序如图4所示。

面向移动安全存储的密码SoC设计与实现

3 功能验证与性能分析

本文采用两块FPGA开发板完成SoC平台的验证,FPGA型号均为Xilinx Virtex5-xc5vlx85,两者之间通过自制的电路板进行通信验证流程:首先通过JTAG接口向EFlash中下载一个boot-loader程序,用于SoC系统的启动和测试向量的下载;SoC系统的硬件驱动和安全协处理器程序通过UART接口下载到系统中;

PC端通过UART接口给出控制命令,选择NAND Flash控制器和安全协处理的工作模式;PC端通过USB接口对NAND Flash进行数据读写的测试。系统工作时钟为80 MHz,选择K9WBG08U1M作为实体NAND Flash器件对SoC进行测试。单片K9WBG08U1M的情况下,读速度可以达到19.3 MB/s,写速度可以达到9.6 MB/s;两片K9F1208UOB并行连接时,读速度可达37.5 MB/s,写速度可达18.4 MB/s。

安全协处理器性能、面积与参考文献中的设计比较结果如表2所示。

面向移动安全存储的密码SoC设计与实现

经过SMIC 0.18 μm工艺库的综合,整个平台的面积约为250万门,最高工作频率为100 MHz。

本文设计的面向大安全存储的密码SoC集成了多个高性能安全协处理器,极大地提高了系统的密码处理性能。设计的NAND Flash可支持外接多种类型(如SLC、MLC和TLC)的NAND Flash芯片,并且支持多片NAND Flash的并行读写和流水线读写操作,最大支持160 GB存储容量。基于FPGA的验证表明,其能够灵活支持多种密码算法的实现,具有较高的NAND Flash访问速度。

该设计可应用于加密U盘、加密U盘KEY、加密移动硬盘、高速加密流转接器等设备中。

参考文献

[1] Chen Hanlin.The single-chip solution of embedded USB encryptor[C].Information Theory and Information Security,2010:42-45.

[2] 宁超。基于SOC存储控制器的研究与开发[D]。西安:电子科技大学,2008:50-53.

[3] Huang Wei,Han Jun,Wang Shuai.The design and implement of a mobile security SoC[C].Conference on Solid-State and Integrated Circuit Technology,2010:96-98.

[4] 胡伟,慕德俊,刘航,等。移动硬盘硬件加密的设计与实现[J]。计算机工程与应用,2010,46(22)。

[5] 沈弼龙。基于应用程序特征分析的SoC任务分配技术研究与实现[D]。长沙:国防科学技术大学,2009:31-33.

[6] AIGNER G,DIWAN A,HEINE D L,et al.An over- view of the SUIF2 compiler infrastructure[R].Computer Systems Laboratory,Stanford University,1999.

[7] 李璐,周海燕。一种含BCH编解码器的SLC/MLC NAND Flash控制器的VLSI设计[J]。现代电子技术,2009,32(7)。

[8] Wang Chenhsing,YEH J C,HUANG C T,et al.Scalable security processor design and its implementation[C].ASSCC,2005:513-516.

[9] SREEDHARAN D,AKOGLU A.A hybrid processing element based reconfigurable architecture for hashing algorithms[C].Parallel and Distributed Processing,2008:1-8.

[10] BERTONI G B,VENTURI L.ECC hardware coprocessor for 8-bit systems and power consumption considerations[C]。 ITNG,2006:573-574.

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11004

    浏览量

    215062
  • soc
    soc
    +关注

    关注

    38

    文章

    4298

    浏览量

    220979
  • SMIC
    +关注

    关注

    0

    文章

    21

    浏览量

    20087
收藏 人收藏

    相关推荐

    抵御量子计算威胁:航芯「抗量子密码加密签名方案」为信息安全筑起新防线

    随着量子计算进入实用化突破期,传统密码体系面临的安全威胁已从理论风险升级为可预见的技术挑战。量子计算机强大的运算能力可能会破解现有的公钥密码体系,例如RSA和椭圆曲线加密算法(ECC)。为了应对量子
    的头像 发表于 04-14 11:01 140次阅读
    抵御量子计算威胁:航芯「抗量子<b class='flag-5'>密码</b>加密签名方案」为信息<b class='flag-5'>安全</b>筑起新防线

    面向未来 三星构建移动安全防护体系

    近期,三星全新上市的Galaxy S25系列,在数据安全与隐私保护领域进行了深入的创新实践。通过硬件级安全架构与创新加密技术的深度融合,三星构建了面向未来的移动安全防护体系,不仅重新定
    的头像 发表于 02-20 16:08 338次阅读

    办公电脑云存储,办公电脑云存储安全吗?

    。今天小编要为大家讲解办公电脑云存储安全吗。    云存储在办公环境中的应用日益广泛,它为个人和企业提供了便捷、高效和安全的数据存储和管理解
    的头像 发表于 12-21 13:53 594次阅读
    办公电脑云<b class='flag-5'>存储</b>,办公电脑云<b class='flag-5'>存储</b><b class='flag-5'>安全</b>吗?

    aes算法在移动应用中的应用场景

    传输敏感数据,如个人信息、账户密码、交易记录等。AES算法能够对这些数据进行加密,确保在传输过程中不被窃取或篡改。例如,在移动支付应用中,AES算法常用于保护用户支付信息的安全传输,防止信息在传输过程中被黑客截获。 2. 本地数
    的头像 发表于 11-14 15:14 673次阅读

    CR5791GTA是一款高度集成的移动电源无线充方案

    芯IP5356M/H) 可读取移动电源SOC的芯片温度和外接电池处 的NTC温度,从而实现多节点温度控制,给用 户良好体验感 可配合整机过3C认证 可实现产品带电升级功能,防止因
    发表于 11-04 15:41

    SOC芯片在汽车电子中的应用

    随着技术的飞速发展,汽车不再仅仅是简单的交通工具,而是变成了一个高度集成的移动计算平台。SOC芯片作为这一变革的核心,正在重塑汽车电子的面貌。 一、SOC芯片的定义与特点 SOC芯片是
    的头像 发表于 10-31 15:46 1982次阅读

    设计软件核心移动存储主机数据手册

    电子发烧友网站提供《设计软件核心移动存储主机数据手册.pdf》资料免费下载
    发表于 10-29 10:20 0次下载

    如何提升SoC安全

    安全启动确保SoC从可信的固件开始启动,防止未授权或恶意软件加载。SoC内置一个只读存储器(ROM)中的Bootloader,这段代码不可更改,用于执行初始启动。固件镜像在编译完成后使
    的头像 发表于 10-21 14:19 563次阅读

    nRF54L 系列SOC芯片NRF54L15 超低功耗蓝牙5.4 SOC

    nRF54L15 是 nRF54L 系列的首款系统级芯片 (SoC)。它是一款超低功耗蓝牙 5.4 SoC,具有同类最佳的新型多协议无线电和先进的安全功能。nRF54L 系列以更紧凑的封装将广受欢迎
    发表于 10-15 15:03

    移动存储介质不得在什么和什么之间交叉使用

    移动存储介质(如U盘、移动硬盘等)不得在 涉密计算机和非涉密计算机 之间交叉使用。这一规定是基于信息安全和保密的考虑,具体原因如下: 一、信息安全
    的头像 发表于 10-12 09:45 1888次阅读

    艾体宝洞察 一文读懂最新密码存储方法,揭秘密码存储常见误区!

    本篇文章将引入并介绍密码存储中的基石,关于密码哈希、盐加密(Salting)、密钥派生函数(KDF)的原理及其应用,揭示密码存储中的常见误区
    的头像 发表于 09-14 17:37 588次阅读
    艾体宝洞察 一文读懂最新<b class='flag-5'>密码</b><b class='flag-5'>存储</b>方法,揭秘<b class='flag-5'>密码</b><b class='flag-5'>存储</b>常见误区!

    恩智浦半导体获得商用密码安全芯片产品认证证书

    恩智浦半导体宣布,其安全NFC解决方案 SN300获得国家密码管理局商用密码检测中心(以下简称商用密码检测中心)颁发的商用密码
    的头像 发表于 08-27 09:16 1503次阅读

    SSID和密码是否以加密形式存储在ESP8266中?

    1.) SSID和密码是否以加密形式存储在ESP8266中。如果是,加密格式是什么? 2.) 芯片的唯一MAC ID是否加密?
    发表于 07-22 07:35

    闪存的哪些扇区可用于用户数据存储

    我想问一下闪存的哪些扇区可用于用户数据存储(例如配置、登录名/密码)。目前,我正在使用外部存储器,但使用板载闪存的某些扇区会更便宜。我尝试在用 blank.bin 编写的一些扇区中写入数据,但最后
    发表于 07-12 08:13

    安全服务加密存储代码怎么查

    安全服务加密存储代码的查询与实现是一个复杂的过程,涉及到多个方面,包括数据加密、密钥管理、访问控制等。 1. 引言 随着云计算的快速发展,越来越多的企业和个人将数据存储在云端。然而,
    的头像 发表于 07-02 09:28 560次阅读