基于FPGA的身份认证智能卡设计

发布者:古宝奇缘最新更新时间:2011-10-17 关键字:身份认证  智能卡 手机看文章 扫描二维码
随时随地手机看文章
    身份认证是保密通信和信息安全的基础。通过身份认证机制可以鉴别网络事务中涉及到的各种身份,防止身份欺诈,保证通信参与各方身份的真实性,从而确保网络活动的正常进行[1]。因此,身份认证一直是网络安全研究领域的前沿技术。

  目前使用的身份认证技术可以分为三种类型:基于所知、所有以及基于个人生物特征的认证。认证方式包括口令认证、智能卡认证以及指纹、虹膜等生物认证方式。

  口令认证是最为广泛的一种认证方式,从普通的计算机登录系统到网络邮件系统都采用这种方式。但是,口令认证的安全性比较低,容易被他人盗用。基于指纹、虹膜的生物身份认证方式是生物技术在信息安全领域的应用,具有普遍性和唯一性的特点,但基于生物识别设备成本和识别技术水平的考虑,目前还难以得到大规模普及。基于智能卡的身份认证方式结合了硬件技术和身份认证技术的优点,提供安全可靠的认证手段,是目前迅速发展的一种认证方式。

  本文提出了一种基于FPGA的身份认证智能卡的设计方案。在FPGA内部实现身份认证相关的数据加密运算,加密算法采用128 bit Rijndael算法。相关的身份信息和加密运算所需要的常量数据均存放在FLASH存储器中,加密后的数据通过PCI总线传给计算机系统。

  1 身份认证系统概述

  身份认证是指通信双方可靠地验证对方的身份。参与身份认证的双方根据功能的不同分别被称为认证方和被认证方。被认证方向认证方发起认证请求,同时提交自己的身份信息。认证方响应认证请求,检验被认证方提交的身份信息,并将认证结果返回被认证方。在这个过程中身份信息一般是通过网络传递。由于网络开放性的特点,使得身份信息可能在传递的过程中被泄露。因此一般不直接传递被认证方的身份信息,而将身份信息加密后再传递,这样即使加密信息被攻击者截获,攻击者也无法解密信息获得被认证方的身份信息。这就要求在身份认证中所使用的密码算法具有足够高的安全强度。

  Rijndael算法是美国国家标准和技术研究所(NIST)推荐的高级数据加密标准(Advanced Encryption Standard)[2],是一种分组密码算法,可以根据加密等级的不同采用128 bit、192 bit和256 bit三种不同的分组长度,具有易于软硬件实现、安全性能好、效率高和灵活等优点。

  Rijndael算法中主要运算模块都是规则的逻辑运算,如置换,循环移位,多轮迭代和模2加等,适合在逻辑资源丰富的FPGA中实现[3]。以ByteSub置换为例,该模块是Rijndael算法中唯一的非线性变换部件,是决定算法安全性的关键。利用软件实现要进行大量矩阵运算,而在FPGA中可以用地址线译码直接在FPGA内部的LUT(Look Up Table)逻辑中查表完成。

  基于智能卡的身份认证系统认证主要流程均在智能卡内部完成。相关的身份信息和中间运算结果均不会出现在计算机系统中。为了防止智能卡被他人盗用,智能卡一般提供使用者个人身份信息验证功能,只有输入正确的身份信息码(PIN),才能使用智能卡。这样即使智能卡被盗,由于盗用者不知道正确的身份信息码仍将无法使用智能卡。智能卡和口令技术相结合提高了基于智能卡的身份认证系统安全性。

  基于智能卡的身份认证系统中采用共享密钥的身份认证协议。假设认证方和被认证方共享一个密钥K。身份认证流程如下:

  (1) 被认证方向认证方发起认证请求,并提供自己的IDi。

  (2) 认证方首先查找合法用户列表中是否存在IDi,如果不存在则停止下面的操作,返回被认证方一个错误信息。如果存在IDi,则认证方随机产生一个128 bit的随机数N,将N传给被认证方。

  (3) 被认证方接收到128 bit的随机数N后,将N送入智能卡输入数据寄存器中,发出身份信息加密命令,智能卡利用存储在硬件中的共享密钥K采用Rijndael算法对随机数N进行加密,加密后的结果存放在输出数据寄存器中。

  (4) 被认证方从智能卡输出数据寄存器中取得加密后的数据,传给认证方。认证方同样通过智能卡完成共享密钥K对随机数N的加密,如果加密结果和被认证方传来的数据一致则认可被认证方的身份,否则不认可被认证方的身份。

  这个过程实现了认证方对被认证方的单向认证。在某些需要通信双方相互认证的情况下,通信双方互换角色再经过一遍同样操作流程就可完成双向认证。由于每次认证选择的随机数都不相同,因此可以防止攻击者利用截获的加密身份信息进行重放攻击。

  2 智能卡硬件结构

  身份认证智能卡主要包括FPGA、PCI 9054接口芯片和FLASH存储器三部分,以及电源管理、时钟和配置芯片等外围设备。基于FPGA的PCI接口身份认证智能卡的硬件结构如图1所示。

身份认证智能卡硬件结构图

图1身份认证智能卡硬件结构图

  FPGA主要实现Rijndael算法中置换、循环移位,多轮迭代和模2加等运算模块,同时提供PCI9054和FLASH存储器的数据接口控制逻辑以及用户身份信息码验证模块。PCI 9054主要实现PCI总线和FPGA之间数据交换。FLASH存储器芯片MX29LV800B用于存放身份认证过程中所使用的加密密钥以及用户身份特征信息如ID值。E2PROM 93CS56为PCI 9054的配置芯片,EPCS4为Altera 公司的Cyclone 系列FPGA EP1C12的配置芯片,分别存放对应芯片的配置信息。FPGA通过PCI 接口实现数据收发以及命令解释执行。

[page]

  3 智能卡软件结构

  身份认证智能卡的软件结构主要包括顶层身份认证系统应用程序、PCI接口驱动程序和FPGA内部加密算法模块三部份。其结构如图2所示:

  3.1 认证系统顶层应用程序

  系统顶层的应用程序主要是提供给用户一个GUI界面接口,以便用户直接通过GUI接口进行身份认证相关操作,避免用户直接调用底层驱动函数,方便用户使用智能卡。顶层应用程序调用相应的智能卡驱动程序接口,发送相应的指令并从底层硬件获得加密后数据,同时按照通信协议规定的数据格式和发送顺序通过网络传送到远程计算机系统。

  3.2 PCI接口驱动程序

  在windows操作系统下,执行于用户态的应用程序不能直接访问硬件,而必须通过调用执行于核心态的设备驱动程序提供的各种服务间接地对硬件资源进行访问,从而确保系统的安全[4]。设备驱动程序是提供给硬件设备连接到计算机系统的软件接口,它使用户应用程序可以用一种规范的方式访问硬件,而不必考虑如何控制硬件。WDM设备驱动程序模型就是windows环境下设备驱动程序模型。

  目前常见的驱动开发软件如NuMega公司的DriverStudio提供了封装各种通用操作的驱动程序类库以及大量参考代码[5],方便用户进行WDM驱动程序的设计,有效缩短了驱动程序开发周期。

  3.3 FPGA加密模块

  FPGA是身份认证智能卡的核心部件,身份认证系统的数据加密、用户身份信息码验证以及数据接口控制逻辑均在FPGA中完成。FPGA内部模块结构如图3所示:

FPGA内部模块结构

  认证方提供的128 bit随机数N经过State矩阵产生模块分解为一个4×4的矩阵。当数据读写模块从FLASH存储器中读出128 bit的共享加密密钥K和S盒变换矩阵后,密钥扩展模块首先将128 bit的加密密钥K按密钥扩展算法产生一个扩展密钥,再从扩展密钥中选择每轮运算的轮密钥。在迭代控制模块管理下,128 bit随机数N经过ByteSub模块、ShiftRow模块、MixColumn模块、AddRoundKey模块多轮迭代运算,并在最后一轮运算结束后从AddRoundKey模块输出加密后的密文数据。PCI 9054接口模块主要实现FPGA芯片和PCI9054本地总线之间的数据交换。FLASH接口模块将用户读写操作转换为FLASH存储器的读写操作时序。数据读写模块负责向FLASH接口模块发送数据读写和擦除信息。命令解释模块和其他所有模块相连,完成用户命令译码工作。所有模块均在Verilog HDL语言设计的有限状态机(FSM)控制下运行。

  4 总结

  基于FPGA的智能卡提供了一种新的身份认证方式,本文作者创新点如下:

  (1) 设计了一种基于FPGA的身份认证智能卡。身份信息加密运算均在智能卡内部完成,除加密结果外其他所有运算的中间状态值均不会出现在计算机系统中,有效地提高了认证系统的安全性。

  (2) 利用Verilog HDL语言设计有限状态机在FPGA中实现128 bit Rijndael算法。在系统时钟频率为50 MHz时测得智能卡加密速度达962.03 Mbits/s,在效率和速度上均优于软件加密方式,并且可以方便地扩展到192 bit或256 bit密钥,使用灵活。

  (3) 利用PCI 9054 实现FPGA与PCI总线之间的高速数据传输,降低了PCI接口设计的复杂性,保证大量并发认证请求服务下系统的性能。

  在基于智能卡的身份认证系统中,认证方和被认证方均采用同样硬件结构的身份认证智能卡[6],FLASH内部存放相同的一组密钥,可以根据需要灵活地选择密钥。在需要多方进行身份认证的系统中,可以在FLASH内部同时存放多组密钥,对于不同的认证操作选择与之对应的加密密钥,利用一块智能卡完成多方身份认证,具有广阔的应用前景。基于FPGA的身份认证智能卡已在物流防伪系统中得到了应用,测试结果表明,该身份认证智能卡安全、可靠、高效。

关键字:身份认证  智能卡 引用地址:基于FPGA的身份认证智能卡设计

上一篇:FPGA平台架构提升信息娱乐系统设计灵活性
下一篇:DSP设计的电磁兼容解决问题

推荐阅读最新更新时间:2024-05-02 21:39

基于声纹识别的社保身份认证与管理方案
1.方案背景 社保社会化以后,因为就业单位的搬迁、变更、关闭,退休人员异地养老等原因,造成投保人员频繁流动、分散。所以确定投保人的生存状况一直是社保支付理赔工作中的一个难题,全国各地陆续出现了社保基金被冒领的现象,尤其是养老保险金被冒领的情况更为严重;解决这一难题的唯一出路在于采用生物识别技术进行身份认证,而语音生物特征(声纹)识别是唯一可用于非接触式、通过电话网络远程安全控制的生物识别方法。   语音生物特征识别,又称说话人识别,俗称声纹识别,是根据说话人的发音生理和行为特征,自动识别说话人身份的一种生物识别方法。声纹识别所提供的安全性可与其他生物识别技术(如:指纹、掌形和虹膜)相媲美,而且语音采集装置造价低廉,只需电
[安防电子]
用于智能卡供电的集成式DC/DC转换器设计
  针对智能卡供电,本文提出了一种集成式DC/DC转换器结构并分析了它的工作原理。该系统效率可达到85%,拥有足够的鲁棒性,可满足所有复杂的ISO7816-3规范,并已通过EMV和EMV Co认证程序1级和2级认证。该结构特别适用于便携式收款机(POS)等智能卡应用。   智能卡的工作电压已经升级到可适用于任何专门针对这种应用的芯片。最初的ISO7816-3和EMV (Europay/Master card/Visa)文件现在包括1.8V、3.0V和5.0V作为适用的工作电源。因此,位于卡和微控制器之间的物理接口必须能够将上述任何一种电源和主MPU适配。电源必须保持表1中规定的工作条件。另外,电源必须能在750μs内断开和卡的连接
[电源管理]
Nordic助力智能卡提供安全的多因素验证解决方案
智慧光科技的BobeePass FIDO卡使用Nordic nRF52840或nRF52832 SoC,实现安全的多协议无线连接 挪威奥斯陆 – 2023年8月21日 – 中国台湾智慧光科技股份有限公司开发一款全新智能卡产品,可为个人、政府机构、金融和企业等一系列市场提供可靠、方便和安全的多因素验证解决方案。 该卡支持低功耗蓝牙 (Bluetooth® LE)、近场通信 (near-field communication NFC) 和USB通信接口,以实现不受限制的跨设备使用。 BobeePass FIDO卡通过了FIDO2 L1和L2认证器验证 (这是FIDO联盟的一套规范)。FIDO联盟提倡推广快速身份在线 (F
[物联网]
Nordic助力<font color='red'>智能卡</font>提供安全的多因素验证解决方案
NFC应用市场将达百亿 或将蚕食部分智能卡份额
    市场调查机构MarketsandMarkets近日发布了关于NFC的调查报告,报告显示,NFC应用市场在2016年将达到100.1596亿美元,从2011年开始每年以38%的复合增长率增长。其包含的NFC应用包括,移动支付、票务预订、数据共享、访问控制、非支付、信息娱乐、广告。需要注意的是,这里所指的是应用本身的价值,而不是应用所带来的资金流动价值。      报告基于2011年的数据,预测到2016年,从2011年开始,未来的5年,移动支付都将是NFC的主要应用场景,并且将会与智能卡市场协同发展。就目前而言,安全和标准缺乏是影响NFC支付发展的两个主要问题。      NFC产业包括,NFC芯片、NFC标签、NFC读卡器、
[安防电子]
基于FPGA的身份认证智能卡设计
身份认证是保密通信和信息安全的基础。通过身份认证机制可以鉴别网络事务中涉及到的各种身份,防止身份欺诈,保证通信参与各方身份的真实性,从而确保网络活动的正常进行 。因此,身份认证一直是网络安全研究领域的前沿技术。   目前使用的身份认证技术可以分为三种类型:基于所知、所有以及基于个人生物特征的认证。认证方式包括口令认证、智能卡认证以及指纹、虹膜等生物认证方式。   口令认证是最为广泛的一种认证方式,从普通的计算机登录系统到网络邮件系统都采用这种方式。但是,口令认证的安全性比较低,容易被他人盗用。基于指纹、虹膜的生物身份认证方式是生物技术在信息安全领域的应用,具有普遍性和唯一性的特点,但基于生物识别设备成本和识别技术水平的考虑,
[嵌入式]
基于FPGA的<font color='red'>身份</font><font color='red'>认证</font><font color='red'>智能卡</font>设计
关于智能卡芯片的发展,英飞凌是这么看的(二)
趋势二: 真16位控制器 #e#   趋势二:真16位控制器    问: 贵公司芯片的CPU创新如何?    答: 英飞凌推出了90nm 16位的CPU产品,采用凌捷掩膜和EEPROM技术。此产品已经被银联列入金融IC卡芯片推荐产品名单。   与原来的产品相比,EEPROM凌捷掩膜产品在CPU方面有几个优势。第一是真16位CPU,比旧的CPU性能提升40%,功耗更低。在同样的功耗下,速度更快。从目前市场角度讲,在8位CPU里面,如果做一些加速器,可以做一些加速功能,但这个加速功能只能针对一些已知算法或者交易流程,一旦交易流程有改变,真16位的高性能就可以体现出来。正如最早的8位CPU,为了加快DES的速度会加入一个加速
[模拟电子]
关于<font color='red'>智能卡</font>芯片的发展,英飞凌是这么看的(二)
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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