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

    文章

    10451

    浏览量

    206582
  • soc
    soc
    +关注

    关注

    38

    文章

    3750

    浏览量

    215722
  • SMIC
    +关注

    关注

    0

    文章

    21

    浏览量

    19760
收藏 人收藏

    评论

    相关推荐

    华润微电子LX100安全MCU芯片产品荣获商用密码产品二级认证

    近日,华润微电子集成电路(无锡)有限公司LX100安全MCU芯片产品通过国家密码管理局商用密码检测中心安全性审查,符合安全芯片
    的头像 发表于 04-11 14:40 334次阅读
    华润微电子LX100<b class='flag-5'>安全</b>MCU芯片产品荣获商用<b class='flag-5'>密码</b>产品二级认证

    通过Python脚本实现WIFI密码的自动猜解

    本文将记录学习下如何通过 Python 脚本实现 WIFI 密码的自动猜解。
    的头像 发表于 01-25 10:46 743次阅读
    通过Python脚本<b class='flag-5'>实现</b>WIFI<b class='flag-5'>密码</b>的自动猜解

    请问如何通过AURIX辅助其他SOC实现功能安全设计?

    请问如何通过AURIX辅助其他SOC实现功能安全设计?
    发表于 01-24 07:05

    锐捷设备密码安全策略

    锐捷设备密码安全策略
    的头像 发表于 11-27 10:27 654次阅读
    锐捷设备<b class='flag-5'>密码</b><b class='flag-5'>安全</b>策略

    IP5109移动电源soc

    IP5109移动电源soc
    发表于 11-14 16:37 0次下载

    密码算法实现的FIA防护

    安全控制器中的密码算法实现模块同样能有效抵御各种故障注入攻击(FIA),目前主要的防护手段包括检错技术和容错技术。
    的头像 发表于 10-12 09:55 272次阅读

    密码算法实现的SCA防护

    对于安全控制器而言,密码算法的实现安全性紧密相关,密码算法实现
    的头像 发表于 10-11 09:12 335次阅读

    SoC设计中常用的存储

    SoC中,存储器是决定性能的另一个重要因素。不同的SoC设计中,根据实际需要采用不同的存储器类型和大小。
    发表于 09-18 16:22 401次阅读
    <b class='flag-5'>SoC</b>设计中常用的<b class='flag-5'>存储</b>器

    面向OpenHarmony终端的密码安全关键技术

    移动终端设备,各终端设备的硬件资源不同,如音箱、小家电、智能穿戴、小传感器等资源受限,需要轻量化的密码实现。目前,何道敬教授所在团队正在进行国产化轻量级密码运算库研究:通过以
    发表于 09-13 19:20

    芯盛智能密码存储技术赋能数字经济安全稳定发展

    关注。四川省密码局、成都市密码管理局、成都市财政局及多个省市密码管理机构的领导,莅临芯盛智能展台,对芯盛智能践行密码存储技术融合,赋能数字
    的头像 发表于 08-10 15:37 806次阅读

    SoC平台安全要求1.0

    本文件规定了芯片上系统(SoC)的最低安全要求多个市场。它主要适用于需要遵守各种安全性的芯片组设计者 要求。架构师、设计师和验证工程师可以使用此规范来支持该过程独立实验室的认证。 本文档未指定特定
    发表于 08-02 10:15

    芯盛智能MP2000Pro SSD,开源架构护航数据信息存储安全

    密码是国家的重要手段,是国家重要的战略资源,也是保障网络和信息安全的核心技术和基础基地。芯盛智能mp2000 pro安全ssd使用sm2/3/4国家密码算法,在主芯片内安装解密引擎,将
    的头像 发表于 07-20 10:42 542次阅读

    基于STM32+华为云IOT实现动态口令密码

    随机密码锁是一种常见的电子锁系统,它使用数字密码代替传统的物理钥匙来进行身份验证和门锁控制。该项目基于STM32微控制器实现一个安全可靠的随机密码
    的头像 发表于 07-13 11:46 4792次阅读
    基于STM32+华为云IOT<b class='flag-5'>实现</b>动态口令<b class='flag-5'>密码</b>锁

    Bitwarden 进军无密码安全领域

    设备上已有的密码、指纹、面部识别等,来替代用户的账户密码登录其它服务。它不仅消除了对密码、用户名和双因素认证(2FA)的需求,而且还通过减轻钓鱼攻击的风险来增强用户的安全性。流行的开源
    发表于 05-28 08:37

    LS1017AXN7PQA可以使用安全启动功能吗?

    什么?软件应该禁用第二个核心吗? 2) 禁用安全功能的基本 P/N LS1017AXN7PQA 是否能够执行安全启动?在 SoC安全启动过程中,启动 ROM 代码使用
    发表于 05-18 09:21