您的位置 首页 观点

加密存储芯片AT88SC1616的原理和应用技术

摘要:从加密存储芯片AT88SC1616内部结构出发,详细介绍该芯片的功能、特点和基本工作原理;给出通用的硬件接口电路和软件编程实现;讨论AT88SC1616在单处机与嵌入式系统中的应用。 关键词:

摘要:从加密存储芯片AT88SC1616内部结构动身,具体介绍该芯片的功用、特色和根本作业原理;给出通用的硬件接口电路和软件编程完成;评论AT88SC1616在单处机与嵌入式体系中的运用。 要害词:加密存储芯片 AT88SC1616 I2C总线 嵌入式体系 跟着嵌入式产品功用的日益进步,嵌入式体系在消费类电子、轿车、工业操控和通讯等职业敏捷遍及;但因为嵌入式体系开发本钱高、

1.png

研制周期长,使得要害技术的加密和重要数据的保密问题日益突出。怎么在这些嵌入式体系中选用低本钱、高功率的办法维护自己的科研成果不被不合法拷贝和剽窃,一起保存一些要害代码或数据已成为困扰许研制工程师的问题之一。处理的办法除了选用法律手段维护知识产权外,另一个愈加简略有用的办法便是选用加密存储芯片进行硬件电路的加密和重要数据的认证存储。 AT88SCxx系列加密存储芯片是世界闻名芯片厂商Atmel公司出产的具有多用途的加密存储系列芯片。其间AT88SC1616是该系列芯片的典型代表。因为其具有多达2KB的EEPROM,运用I2C串行总线通讯,选用认证或加密验证等办法进行数据拜访,因而以其容量大、体积小、运用便利、安全可靠等特色,在发生开发中得到了广泛的运用。 1 器材简介 1.1 引脚阐明 如图1所示,在嵌入式体系中,AT88SC1616常选用SOIC和PDIP两种典型封装。因为器材选用I2C串行总线接口,因而引脚数目少,体积小。各引脚功用如下: SCL——串行时钟输入脚,用来操控器材一切的数据输入相输出; SDA——串行数据输入/输出脚; VCC——电源电压,作业电压为3.0~5.5V; GND——地; NC——不连接。

2.png

1.2 内部结构 如图2所示,AT88SC1616加密存储芯片内部结构主要由电源办理复位模块、同步传输模块、认证单元、暗码校验单元、伪随机数发生器和EEPROM等几部分组成。其间电源办理复位模块主要对芯片进行供电、供给复位办理和掉电维护等功用;同步传输模块用于操控在不同通讯办法下数据的传输;认证和暗码校验单元完成在不同安全等级下用户用户运用区数据拜访的安全办理;伪随机数发生器用于进行内部加密机的加密核算;EEPROM则保存需求加密的重要数据和代码。 1.3 主要特色 ①具有256B的装备存储区,可依据不同需求界说芯片序列、暗码、密钥、认证种和厂家信息等。 ②供给2KB的用户运用存储区,可依据不同安全等级将该区划分为16个独立的运用分区,最多能够供给给16个用户运用;也可将具有相同安全等级和暗码的多个运用分区进行兼并。

3.png

③高安全性。关于用户民运用区,具有规范拜访、认证拜访和加密验证拜访两种办法,一起供给多组暗码集供读写拜访运用。每个运用分区在装备区中都有相应的寄存器操控其安全等级和拜访办法。 ④高可靠性。供给多达10万次擦写次数和10年的数据保存期。 ⑤多种封装。除8脚的PDIP、SOIC封装外,还具有智能卡片封装,可广泛运用于%&&&&&%卡体系。 ⑥高速度。在I2C串行总线办法下,通讯速率最高可达1000kb/s。 2 作业原理 2.1 装备区结构 AT88SC1616逻辑加密芯片是一款串行EEPROM,共有2KB的用户运用存储区和256B的体系装备区,运用存储区经过装备可划分红16个相同容量的运用存储区。分别受8套(16个)读、写暗码的操控,过错计数最大8次。这16个运用分区也能够经过装备运用相同的暗码和安全等级可自在兼并运用。 AT88SC1616装备区的结构如图3所示。 ①DCR:指定认证次数约束和芯片地址。 ②AR0~AR7:确认拜访权限,初始化时界说,指定对应的用户运用区拜访办法,例如是否需求认证,是否运用暗码,运用哪一套暗码,是否只读等等。 ③AAC:认证过错计数器。 ④PAC:暗码过错计数器。

4.png

供用户运用的16个运用存储区都各有2个24位的暗码,可在装备区对其读写操作进行设置,而且每个暗码都有计数器约束口令验证次数。 2.2 芯片运用 AT88SC1616芯片为用户拜访运用存储区供给了规范、认证和加密三种办法,既便运用户依据实际情况灵敏挑选加密办法,又进步了体系的安全性。在规范拜访办法下,对用户运用区的读写拜访无任何约束;在认证办法下,用户有必要经过认证,一起要经过不同用户区所设定的暗码查验才干正确拜访用户数据区,在这种办法下,总线上传输的数据是明文:加密验证形式下拜访用户时用户有必要首要经过认证,然后运用认证成功后装备区特定寄存器中更新的数据作为密钥再次进行认证,最终还要经过不同用户区设定的暗码查验后才可拜访用户区,这种办法下总线下传输的数据是经过加密的密文。 整体来说,对芯片的运用可分红初始化、认证(加密)和拜访三个进程。 (1)初始化 初始化的进程,用户体系的MCU要将出产厂商信息、分区设备、安全等级和暗码以及加密认证所需参数等写入芯片的装备区,最终还要进行写熔断的处理。在完成的进程中,应要点考虑怎么对AT88SC1616的2K装备区进行合理的装备和运用,对拜访用户分区的权限进行有用的操控。 在对装备区进行合理装备的一起,要将从证所需的三组重要的参数写入到装备区相应的寄存器中。这三组数分别是:Ci(Cryptograms)认证所需的随机数,Nc(Identification Number)芯片序列号,Gc(Secret Seeds)由用户自界说的F1算法得出的隐秘种子。 初始化时,首要要向第七组写暗码区中写入装备区的写入暗码。只要正确写入该暗码后用户才干够获得对整个装备区的写入权利,这个暗码由芯片供货商供给。正确写入暗码后就能够依据要求对芯片的各个寄存器进行装备,最终还要依据用户需求,依照SEC、PER、CMA、FAB的次序顺次向熔断位写入0进行熔断处理。留意,芯片一旦被写熔断后就无法再对装备区的信息进行更改。 (2)认证 整个认证进程是一个双向认证的进程,流程如图4所示。 用户体系的MCU首要从芯片中读出Nc和Ci,依据自界说的F1(Nc,Ks)算法算出Gc,一起运用芯片内部的F2(Gc,Ci,Q0)算法算出Q1,并向芯片发送初始化认证参数Q1和Q0,其间,Q0是CPU方给出的随机数。芯片内部则运用自己的F2逻辑算出Ci+1=F2(Gc,Ci,Q0),一起得出Q2=F2(Gc,Q1)。芯片收到校验认证指令后,判别是否Ci+1=Q1,如是,则有Ci+2=F2(Gc,Ci+1),且用Ci+2更新Ci,芯片中的认证经过;一起更新芯片内部同组的SK(Session Encryption Key)的值。CPU方接纳芯片中更新的Ci后,判别是否等于Q2,假如经过,则认证悉数经过。 上面说的进程是认证形式,假如想进入加密难证形式的话,需求再次运用认证成功时回来更新的SK值,用它替代Gc,Ci再作为参数;运用F2函数,芯片和 MCU方再核算一次并比较,判别持平后才进入加密认证形式。 上面说到的F2算法,是芯片内部的操控逻辑运用Gc、Ci、Q0三个参数初始化的一个DES算法的变种。这个算法是一切加密解密、完整性认证与信息认证的要害。

5.png

(3)拜访用户区 认证(加密)成功后就能够发送指令挑选用户分区进行数据的读写拜访了,假如各个分区还有读或写的暗码约束,则还需求向拜访 的分区写入暗码进行校验,经过这一步后才干真实彻底拜访用户分区。此刻假如多个用户分区运用相同的安全等级和暗码,则能够将这多个用户区进行兼并。需求阐明的是,认证一旦成功后,芯片内部的加密机就当即开端发动,MCU对芯片的任何操作都需求依据芯片加密机内部算法进行核算,以坚持与它的同步。特别是向用户分区发送一次写入指令和数据后,要紧接着发送一次MCU方核算的加密机成果,与芯片内部加密机核算的成果进行校验。芯片只要接纳到正确的校验和后才干将数据写入到相应的地址内,不然数据写不到意图地址,一起芯片会回来过错信息。 3 芯片功用完成 3.1 硬件电路 因为AT88SC1616加密芯片选用两线的I2C总线通讯办法,因而与微处理器的硬件接口相对简略。图5是AT88SC1616与AVR单片机 Atmegal128相连的硬件接口电路。因为Atmegal 128内部带有I2C接口,因而它可与AT88SC1616直接相连。在其它嵌入式体系中,AT88SC1616与其它微处理器的接口相同简略,只要与相应的I2C接口引脚直接相连即可。如体系的MCU没有专用I2C接口引脚,可运用一般的I/O引脚(GPIO)与AT88SC1616的时钟线和数据线相连,选用I2C模仿办法就能够正常作业。但不管是否进行I2C的模仿,其总线上一定要确保契合I2C总线要求的上拉电阻,以确保其时序的正确无误。 3.2 软件完成 AT88SC1616选用两线的I2C通讯办法,其操控时序比较简略,本文不再多述。这儿要点叙述一下芯片运用作业进程。 AT88SC1616的初始化流程如图6所示。依照写入装备区暗码、区别拜访办法和读写暗码、安全约束和认证参数、熔断处理的次序,以I2C的通讯办法向芯片内部各寄存器地址发送指令和数据。因为AT88SC1616内部有一内存测验区(memory test)不受安全和暗码约束,因而为确保I2C读写时序的正确性,可先向该区进行读写测验,然后再向芯片正确写入各种指令。 用户认证流程如图7所示。不管体系MCU是选用自身I2C接口,仍是运用一般I/O口进行I2C模仿,软件的完成都遵从如前所述的总线时序。需求留意的是,在发动I2C START信号前,SCL一定要首要发送4个脉冲来发动通讯,不然发送的数据和指令不会被芯片正确接纳。这一点与一般I2C器材有所不同,一定要得到注重。 拜访用户分区的流程如图8所示。可先向用户分区写入数据后再读出以进行校验。编程时要留意,认证一旦成功,MCU一切对芯片的操作都要加上对内部加密机的核算,对芯片发送指令和数据后要紧接着发送校验和,以和芯片内部的加密机进行校验,校验和不正确芯片会回来过错信息。

6.png

4 在嵌入式体系中的运用 因为AT88SC1616具有运用便利、安全可靠等许多长处,使其在工业操控、消费类电子、医疗器械、计费体系等范畴具有宽广的运用远景。笔者已将该芯片用于已开发的挑选性漏电维护体系中。在这个体系中的64条供电支路被人为划分红4个区,每个区设定独立的电压、电流和相位。针对不同区的办理员,还设定不同的用户名和暗码,这些参量都被保存在AT88SC1616的用户运用区中。咱们在维护体系数据安全性方面选用的办法是,在程序中对这些参量的读写拜访都设定了暗码,暗码不正确是不能读写这些参量的,确保了只要真实的供电分区办理员才可对相应区的体系参数进行设定;一起选用加密验证拜访办法,使得总线上传输的数据是密文,维护了体系数据的安全性。为避免有些不良用户运用不合法手段获取体系时序进行反汇编,以此到达破解体系牟取高额赢利的意图,也选用了两个办法来确保整个体系的安全性,一是体系中不定期地对芯片进行认证拜访,体系一次认证不成功就回来过错信息;第二是对不合法的认证拜访数进行过错约束,过错一旦超越8次,芯片锁死,然后维护了咱们的知识产权。 出于安全考虑,每个芯片要运用仅有的序列号。笔者还依据实际情况规划了一款针对AT88SC1616的简略有用的编程器,运用该编程器可在芯片正式运用之间对其初始化,将序列号、认证参数、安全等级、拜访暗码等各种信息写入装备区,使得每一个被初始化的芯片都能够直接在其它体系中运用,大大进步了功率。 结语 本文具体介绍了AT88SC1616的芯片结构、特色、数据存储拜访原理,并以Atmega 128与其接口为例,给出了有用的硬件接口电路与软件完成流程。因为AT88SC1616具有较大的存储空间、严厉的安全功用和简略可靠性的高速数据传输办法,因而极大地进步了嵌入式体系的数据安全性和适用性。咱们已将此芯片成功运用于挑选性漏电维护的软硬件加密体系中。事实证明运用该芯片既进步了体系的防破解性,又确保了重要数据的安全性。别的,咱们还依据其特色规划了可用于初始化该芯片的编程器,为大批量出产供给了硬件条件,获得了杰出的作用。 AT88SC1616杰出的安全性使得它还可更广泛地运用于长途抄表、医疗器械、机顶盒、轿车、通讯、消费类家电等嵌入式体系。本文所介绍的办法对这些运用都有很好的参考价值。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/292123.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部