加密存储芯片AT88SC1616的设计应用

发布者:未来感觉最新更新时间:2014-08-14 来源: 21ic关键字:加密存储芯片  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封装外,还具有智能卡片封装,可广泛应用于IC卡系统。 ⑥高速度。在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良好的安全性使得它还可更广泛地应用于远程抄表、医疗器械、机顶盒、汽车、通信、消费类家电等嵌入式系统。本文所介绍的方法对这些应用都有很好的参考价值。

关键字:加密存储芯片  AT88SC1616  I2C总线 引用地址:加密存储芯片AT88SC1616的设计应用

上一篇:单片机下程序RAM, ROM ,Flash
下一篇:单片机对AT24C512中数据的处理管理

推荐阅读最新更新时间:2024-03-16 13:39

基于光强传感器TSL256x的感测系统方案设计
1 TSL256x简介   TSL2560和TSL2561是TAOS公司推出的一种高速、低功耗、宽量程、可编程灵活配置的光强度数字转换芯片。该芯片可广泛应用于各类显示屏的监控,目的是在多变的光照条件下,使得显示屏提供最佳的显示亮度并尽可能降低电源功耗;还可以用于街道光照控制、安全照明等众多场合。该芯片的主要特点如下:   ◇ 可编程设置许可的光强度上下阈值,当实际光照度超过该阈值时给出中断信号;   ◇ 数字输出符合标准的SMBus(TSL2560)和I2C(TSL2561)总线协议;   ◇ 模拟增益和数字输出时间可编程控制;   ◇ 1.25 mm×1.75 mm超小封装,在低功耗模式下,功耗仅为0.75 mW;   
[测试测量]
基于光强传感器TSL256x的感测系统方案设计
标准80C51单片机模拟I2C总线的主机程序
I2C总线协议程序 在做程序是我在网上找的是周立功的程序,感觉还不错顺便转载;在使用的过程中一定要注意时序、时间的问题。 “i2c.h文件” //I2C总线综合发送函数,向从机发送多个字节的数据 bit I2C_Puts( unsigned char SlaveAddr, unsigned int SubAddr, unsigned char SubMod, char *dat, unsigned int Size ); //I2C总线综合接收函数,从从机接收多个字节的数据 bit I2C_Gets ( unsigned char SlaveAddr, unsigned int SubAddr, unsigned char S
[单片机]
标准80C51单片机模拟<font color='red'>I2C总线</font>的主机程序
I2C总线学习—查缺补漏—S3C2440的I2C控制器
学习了IIC总线协议的理论部分,觉得应该学习具体操作2440的IIC控制器,毕竟最终都是为了学习S3C2440,所以就把这一部分补上。 S3C2440的I2C接口有四种工作模式:主机发送器、主机接收器、从机发送器、从机接收机。其内部结构如下图所示。 从上图可以看出,S3C2440提供4个寄存器来完成所有的IIC操作。SDA线上的数据从IICDS寄存器经过移位寄存器发出,或通过移位寄存器传入IICDS寄存器;IICADD寄存器中保存S3C2440当做从机时的地址;IICCON、IICSTAT两个寄存器用来控制或标识各种状态,比如选择工作工作模式,发出S信号、P信号,决定是否发出ACK信号,检测是否
[单片机]
<font color='red'>I2C总线</font>学习—查缺补漏—S3C2440的I2C控制器
基于I2C总线的高分辨率红外式触摸屏设计
  引言   随着平面显示器的大规模应用和大屏幕平板显示器的出现,红外触摸屏的应用已十分广泛。同时,分辨率的进一步提高成为红外触摸屏应用于大屏幕的关键,本文提出了一种提高红外式触摸屏分辨率的方法。   系统结构及工作原理   系统工作原理   红外触摸屏基本原理是光束阻断技术,它不需要在原来的显示器表面覆盖任何材料,只需在显示屏幕的四周安放一个框架。框架两个对边上,一边安装红外发光二极管(LED),另一边安装红外线探测器,在显示屏幕的表面形成一个由红外线组成的栅格。当有任何物体进入这个栅格的时候,就会阻挡一些光线,光电转换电路就会收到变化的信号,由ADC转换后,MCU将计算的触摸位置坐标传递给操作系统。   早期红外触摸
[单片机]
基于<font color='red'>I2C总线</font>的高分辨率红外式触摸屏设计
基于I2C总线的DS1629型智能温度传感器
DS1629是美国DALLAS公司新推出的一种带实时日历时钟和I2C总线接口的智能 温度传感器 ,可广泛用于温度传感系统、数据记录器、个人计算机、个人数字助理和移动电话等设备中。
[工业控制]
基于<font color='red'>I2C总线</font>的DS1629型智能温度传感器
热插拔 (Hot Swap™) I2C总线缓冲器可提供高噪声裕度、电平移位和阻塞总线恢复功能
加利福尼亚州米尔皮塔斯 (MILPITAS, CA) – 2011 年 10 月 25 日 – 凌力尔特公司 (Linear Technology Corporation) 推出高噪声裕度缓冲器 LTC4313 和 LTC4315,这两款器件可为 I2C / SMBus / PMBus 系统提供电容缓冲和总线扩展能力。随着一根 I2C 总线上设备数目的扩大,增加的电容会大幅度地延长上升时间。LTC4313 和 LTC4315 通过总线分段使上述问题得以缓解,并且提供了高逻辑低噪声裕度的额外优势,这得益于其 0.3 • VCC 的保证最小 VIL。这使 LTC4313 和 LTC4315 能与用于驱动一个高逻辑低输出电压 (VOL)
[电源管理]
AVR片内TWI总线(I2C总线协议)
/*本程序为八位共阴极数码管且有两个573控制的动态扫描*/ /*此程序为开机记忆,可以每次开机分自动加一。如果加了,说明操作成功*/ /*本程序把24C08的SCL和SDA分别接在MCU的SCL(PC0第22脚)和SDA(PC1第23脚)*/ //24C08的第7脚WP接地 #include iom16v.h #include macros.h //这里面有BIT(),所以要包含 #define uchar unsigned char #define uint unsigned int #pragma data:code //注code的功能是把后面的数据存在程序存贮器中,不用code就放到了随机存贮器中. uchar cons
[单片机]
基于LTC4310设计的绝缘双向I2C总线通信技术
基于LTC4310设计的绝缘双向I2C总线通信技术 LTC4310是Linear 公司的绝缘的双向I2C总线通信器件,每个器件可把I2C逻辑状态编码成信号,通过绝缘层传输到另一个器件.接收器件解码,并驱动I2C总线到适当的确逻辑状态.主要用在绝缘的I2C, SMBus和PMBus 接口,绝缘电源,以太网供电和正到负电源通信.本文介绍了LTC4310主要特性,典型应用以及多种应用电路框图. The LTC®4310 provides bidirectional I2C communications between two I2C buses whose grounds are isolated from one another
[模拟电子]
基于LTC4310设计的绝缘双向<font color='red'>I2C总线</font>通信技术
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved