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

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

3天内不再提示

采用密码算法的智能卡的应用

电子设计 作者:电子设计 2018-09-13 09:02 次阅读

引言

在过去的十年中,智能卡上的计算能力发展迅速,基于 公钥的智能卡广泛应用于各个领域。智能卡(Smart Card)有接触与非接触卡片,内嵌有微芯片的塑料卡的通称。有包含RFID芯片的,也有加上热敏膜技术的,实现可视功能的,卡片具有储存信息的功能,能实现智能功能作用。智能卡配备有CPURAM,可自行处理数量较多的数据而不会干扰到主机CPU的工作。智能卡还可过滤错误的数据,以减轻主机CPU的负担。适应于端口数目较多且通信速度需求较快的场合。智能卡是IC卡(集成电路卡)的一种,按所嵌的芯片类型的不同,IC卡可分为三类: 1.存储器卡:卡内的集成电路是可用电擦除的可编程只读存储器EEPROM,它仅具数据存储功能,没有数据处理能力;存储卡本身无硬件加密功能,只在文件上加密,很容易被破解。卡内的集成电路包括中央处理器CPU、可编程只读存储器EEPROM、随机存储器RAM和固化在只读存储器ROM中的卡内操作系统COS(Chip Operating System)。卡中数据分为外部读取和内部处理部分,确保卡中数据安全可靠。

1 消息认证

消息认证码实际上是对消息本身产生的一个冗余的信 息,消息认证码是利用密钥对要认证的消息产生新的数据块 并对数据块加密生成的,它对于要保护的信息来说是一一对 应的。因此消息认证码可以有效保证消息的完整性,以及实现发送方消息的不可抵赖和不可伪造。

消息认证码不支持可逆性,是多对一的函数,其定义域由任意长的消息组成,而值域是由远小于消息长度的比特串构成。从理论上来说,一定存在不同的消息产生相同的认证码,因此必须找到一种足够单向和强碰撞自由性的方法才是安全的。

而对于消息认证码的主要攻击目标也是找到一对或者多对碰撞消息。对于现有的攻击方法,有些可以攻击任意类型的哈希方案,有些只针对特定的哈希方案。自从2004年MD5算法被攻破以后,SHA也面临被攻破的危险。

2 分组密码

分组密码在密码领域广泛使用,除了本身的几种工作模式之外,它可以用来构建MAC,也可以用来构建哈希函数、伪随机函数等等。分组密码具有速度快、易于标准化和便于软硬件实现等特点,通常是信息域网络安全中实现数据加密、数字签名、认证及密钥管理的核心体制,它在计算机通信和信息系统安全领域中有着最广泛的应用。

第一个广泛使用的分组密码算法是DES算法。DES自1977年公布后得到了许多组织、部门的使用,各国的密码学工作者也对它进行了深入的分析,它是迄今为止使用最广泛和最成功的分组密码。DES的轮函数采用Feistel网络,8个s盒,扩充、压缩置换、块置换。其算法简洁、快速且加解密相似。但一个明显的缺陷是s盒为黑盒,因此公众长久地抱怨并怀疑它设有陷门。早期的迭代分组密码设计主要围绕DES进行,后来在此基础上有很大的发展,出现了众多的Feistel型密码,DES的设计至今仍闪烁着人类设计思想的精华,其结构和部件仍在被后人效仿。数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的。通常,自动取款机(Automated Teller Machine,ATM)都使用DEA.它出自IBM的研究工作,IBM也曾对它拥有几年的专利权,但是在1983年已到期后,处于公有范围中,允许在特定条件下可以免除专利使用费而使用。

DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行"异或"运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。是旅居瑞士中国青年学者来学嘉和着名密码专家J.Massey于1990年提出的。它在1990年正式公布并在以后得到增强。这种算法是在DES算法的基础上发展出来的,类似于三重DES,和DES一样IDEA也是属于对称密钥算法。发展IDEA也是因为感到DES具有密钥太短等缺点,已经过时。IDEA的密钥为128位,这么长的密钥在今后若干年内应该是安全的。类似于DES,IDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。与DES的不同处在于,它采用软件实现和采用硬件实现同样快速。

Rijndael是AES活动的最终胜利者,现已替代DES成为美国新的加密标准。国家标准技术研究所(NIST)选择Rijndael作为美国政府加密标准(AES)的加密算法,AES取代早期的数据加密标准(DES)。Rijndael由比利时计算机科学家Vincent Rijmen和Joan Daemen开发,它可以使用128位,192位或者256位的密钥长度,使得它比56位的DES更健壮可靠。Rijndael也有一个非常小的版本(52位),合适用在蜂窝电话、个人数字处理器(PDA)和其他的小设备上。宽轨迹策略的最大优点是可以估计算法的最大差分特征概率和最大线性逼近概率,由此可以评估算法抵抗差分密码分析和线性密码分析的能力。继美国征集AES的活动之后,欧洲在2000年3月启动了NESS1E大计划,目的是为了推出一系列的安全的密码模块,保持欧洲在密码研究领域的领先地位并增强密码在欧洲工业中的应用 作为欧洲新一代的加密标准,Camellia算法具有较强的安全性,能够抵抗差分和线性密码分析等已知的攻击。与AES相比,Camellia算法在各种软硬件平台上表现出与之相当的加密速度。

3 流密码

流密码也称序列密码,它是对称密码算法的一种。"一次一密"的密码方案是流密码的雏形,但由于 一次一密"的密码体制存在密钥产生、分配和管理极为困难的缺点,使其应用范围受到限制。在保密强度要求高的场合,如大量军事密码系统,仍多采用流密码。流密码是指利用少量的密钥(制乱元素)通过某种复杂的运算(密码算法)产生大量的伪随机位流,用于对明文位流的加密。解密是指用同样的密钥和密码算法及与加密相同的伪随机位流,用以还原明文位流。流密码设计的一般原则是采用多重密钥、多重环节、多重安全措施等技术,达到"一次一密",总体上达到流密码最终靠密钥保密,因此流密码的关键是产生密钥序列的算法,其密码系统的安全性也主要取决于密钥序列。当前流密码的重点研究方向主要包括:①自同步流密码的研究;②有记忆前馈网络密码系统的研究;③多输出密码函数的研究;④高速密码芯片的开发:⑤同步序列密码在失步后如何重新同步的问题;⑥混沌序列密码和新研究方法的探索等。

4 公钥加密算法

Whitfield Di衢e和Martin Hellman在1976年发表的"New Direction in Cryptography"首次提出了公钥密码体制,冲破了长期以来一直沿用的私钥体制。自从公钥密码体制被提出以来,相继出现了许多公钥密码方案,其中以RSA和椭圆曲线密码算法ECC最为典型。

4.1 RSA算法

当前最着名、应用最广泛的公钥系统RSA是在1978年由美国麻省理工学院的Rivest、Shamir和Adleman提出的,它是一个基于数论的非对称密码体制。RSA算法是第一个既能用于数据加密也能用于数字签名的算法,它容易理解和操作。

RSA的安全性基于大整数索因子分解的困难性,而大整数因子分解问题是数学的着名难题,至今没有有效的方法予以解决,因此可以确保RSA算法的安全性。RSA系统是公钥系统的最具有典型意义的方法,大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是RSA算法RSA的缺点主要有:首先,产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密;其次运算速度慢。

4.2椭圆曲线密码算法

椭圆曲线在代数学和几何学上已有一百五十多年的研究历史,有着复杂的数学背景,涉及到数论、群论和射影几何等学科。

1985年,N.Koblitz和V.Miller分别提出了椭圆曲线密码体制ECC,其安全性依赖于椭圆曲线群上离散对数问题码的难解性,即已知椭圆曲线上的点P和kp计算k的困难程度,不过在当时一直没有像RSA等密码系统一样受到重视。但从现在来看,ECC是目前已知的公钥密码体制中,对每一比特所提供加密强度最高的一种体制,它具有安全性上高、计算量小、存储空间占用小、带宽要求低等特点,这些优点使得椭圆曲线公钥密码体制将应用到越来越多的领域。如存储空间小,这对于加密算法在智能卡上的应用具有特别重要的意义。1999年ANSI X9.62标准的发布成为ECC标准化的一个重要里程碑,同年美国政府的国家标准与技术委员会NIST发布了新的规定FIPS186-2,确定了ECC的地位。

5 结束语

在过去的五年中,智能卡上的计算能力发展很快,智能卡和终端计算机上应用的密码算法的区别已经日益显现AES算法很快成为世界范围内的一个标准,对于该算法的攻击手段也渐渐涌现。另外,边信道攻击也成为一 个越来越重要的研究领域,这种攻击的出现将会对硬件和软件的实现产生影响。新的安全证明和安全模型也在不断涌现,这些都使我们对安全的理解越来越深刻。在现在各种攻击手段和安全证明充分发展的情况下,需要尽快地升级智能卡中所使用的密码算法。尽管如此,密码 密算法的完全更替还是需要一些时日。

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

    关注

    134

    文章

    9040

    浏览量

    366727
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10824

    浏览量

    211090
  • 智能卡
    +关注

    关注

    0

    文章

    135

    浏览量

    24734
收藏 人收藏

    评论

    相关推荐

    LKT4100性价比最高的智能卡加密芯片

    LKT4100,采用8位智能卡芯片为硬件平台的加密芯片,支持客户自定义算法,下载到芯片内部运行,保证下载到芯片内部的程序代码的安全性,由于采用智能卡
    发表于 11-01 13:39

    采用智能卡平台的高端加密IC开发中常见问题

    加密芯片的特点,区分位两大方案,即单片机与加密IC固定算法认证的模式和单片机中的部分代码移植到加密IC中的模式。从目前的加密效果看,采用智能卡平台的加密芯片,使用客户自定义算法移植的加
    发表于 04-08 14:31

    采用智能卡平台的LKT系列加密IC介绍

    串口通讯协议,用户可以把主要算法放到芯片内部,编程语言基于标准C,开发简单方便,同时,内部大容量的数据空间可作为用户扩展数据存储器,存放重要特征数据。  产品特性:  采用智能卡专用安全微处理器硬件
    发表于 04-11 12:20

    采用智能卡平台的安全加密芯片LKT4200

    介绍一种电子产品硬件设计的版权保护方法,LKT4200是迄今为止,嵌入式加密芯片中最高端的加密芯片,它采用了32位智能卡芯片为硬件平台,提供最安全的加密方案,即算法下载方案,客户提供自由的下载程序或
    发表于 07-20 13:51

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

    基于FPGA的身份认证智能卡的设计方案。在FPGA内部实现身份认证相关的数据加密运算,加密算法采用128 bit Rijndael算法。相关的身份信息和加密运算所需要的常量数据均存放在
    发表于 10-14 12:45

    智能卡技术

    智能卡技术
    发表于 08-18 10:32

    LKT3100 密码键盘加密芯片

     LKT3100 密码键盘加密芯片采用智能卡行业高安全性智能卡安全处理芯片,采用PSAM的应用
    发表于 02-10 15:41

    智能卡芯片是什么?

    芯片种类那么多,其他的都还好理解,可智能卡芯片是什么?
    发表于 01-29 11:01

    基于低成本MCU的UART驱动智能卡

    和固件开发,给设计师带来了新的挑战。不幸的是,只有一些高档微控制器具有可以直接驱动智能卡的专用UART。里所述的设计,可以让你采用低端8位微控制器上标准的UART来驱动智能卡,本文采用
    发表于 07-19 08:25

    HuiHAT是智能卡的基础吗?

    HuiHAT是智能卡的基础吗?
    发表于 03-26 10:36

    IC智能卡失效机理研究

    摘要:IC智能卡使用过程中出现的密码校验失效、数据丢失、应用区不能读写等一系列失效和可靠性问题,严重影响了其在社会生活各领域的广泛应用.分析研究了IC智能卡芯片碎裂、引
    发表于 11-12 21:10 34次下载

    智能卡(CPU),什么是智能卡(CPU)

    智能卡(CPU),什么是智能卡(CPU) 智能卡又称CPU。CPU
    发表于 04-02 13:36 3152次阅读

    智能卡COS产品密码检测准则

    1 适用范围 本准则规定了智能卡COS 产品的密码检测内容,适用于政府采购法规定范围内的智能卡COS 产品 密码检测。 2 规范性引用文件 下列文件中的条款通过本标准的引用而成为本标准
    发表于 03-31 17:48 49次下载

    RFID智能卡厂家定制高频智能卡

    216等常见规格:85.5*54*0.84MM,40*25mm,50*30MM,28*31.5mmRFID智能卡厂家深圳市创新佳智能科技有限公司采用独特的标签天线设计,具有优异的性能,能进行远距离多标签
    的头像 发表于 11-12 09:14 1694次阅读

    Java智能卡EEPROM碎片整理算法

    Java智能卡EEPROM碎片整理算法(c语言嵌入式开发需要学的东西)-Java智能卡EEPROM碎片整理算法
    发表于 07-30 11:34 9次下载
    Java<b class='flag-5'>智能卡</b>EEPROM碎片整理<b class='flag-5'>算法</b>