用于压缩和解压缩mifare应用的方法

文档序号:7537235阅读:117来源:国知局
专利名称:用于压缩和解压缩mifare应用的方法
技术领域
本发明涉及压缩MIFARE应用的方法,MIRARE应用组织在至少一个扇区中,该扇区 包括以数据块和扇区尾部形式布置的扇区数据。本发明还涉及对包含MIFARE应用的数据流进行解压缩的方法,该MIFARE应用是 已根据本发明压缩方法中定义的压缩规则压缩的。本发明还涉及可直接加载到配备有MIFARE设备的计算机或移动通信设备的存储 器中的计算机程序产品。本发明还涉及包括经典或仿真MIFARE存储设备的移动通信设备,其中移动通信 设备适于处理上段中所述的计算机程序产品。
背景技术
由NXP半导体公司开发的MIFARE 经典族是工作于13. 56MHz频率范围 并具有读/写功能的非接触式智能卡IC中的先锋和引领者。MIFARE 是NXP半 导体公司的商标。MIFARE符合IS014443A,用于当今所有非接触式智能卡中超过80 % 的智能卡中。该技术具体实现在卡和读卡器设备两者中。MIFARE卡当前用于日益增 长的广泛范围的应用中(包括交通售票,访问控制,电子支付,道路收费和特许应用)。 MIFARE标准(或经典)卡采用具有针对认证和密码的专有安全协议的专有高层协议。 MIFARE 技术已成为具有密钥保护的存储扇区的存储设备的标准。MIFARE 技 术的出版产品说明书的一个示例是数据表单“MIFARE standard Card IC MRl IC S50-Functionality Specification”(1998),其合并在此作为参考。MIFARE 技术也在 Klaus Finkenzeller, "RFID Handbuch”,HANSER,第 3 版(2002)中有所论述。MIFARE经典卡基本上只是存储记忆设备,其中存储器划分为扇区和块,具有针对 访问控制的简单安全机制。每个设备具有唯一的序列号。提供了防冲突机制,以便可以选 择现场的若干卡并顺序地进行操作。MIFARE标准Ik提供大约768字节的数据存储,划分成16个扇区,每个扇区具有4 个16字节的块(一个块包括16字节);每个扇区由两个不同的密钥A和B保护。可以对 扇区编程,以进行例如读、写、增加值块等操作。每个扇区的最末块称为“尾部”,尾部包含两 个秘密密钥(A和B)以及针对该扇区中每个块的可编程访问条件。为了支持具有密钥分级 结构的多应用,提供每个扇区(每个应用)两个密钥(A和B)的单独集合。图1示出了 MIFARE标准Ik卡的存储组织。1024 X 8比特的EEPROM存储器被组织 成16个扇区,每个扇区具有4个16字节的块。第一扇区(扇区0)的第一数据块(块0) 是制造商块,图2具体示出了该块。制造商块包含MIFARE卡的长度为4个字节(字节0到 3)的序列号、校验字节(字节4)以及11个字节的IC制造商数据(字节5到15)。序列号 有时称为MIFARE用户标识(MUID),并且是唯一号码。由于安全和系统需求,在已由IC制造 商在生产时进行了编程之后,制造商块是受到写保护的。但是,MIFARE规范允许在MIFARE 卡工作期间修改序列号,这对于例如SmartMX卡等MIFARE仿真卡尤其有用。
3
SmartMX (存储扩展,Memory extension)是由NXP半导体公司设计的智能卡族,针 对要求高可依赖性解决方案的高安全性智能卡应用,具有或不具有多个接口选项。关键应 用是电子政府管辖、银行/金融、移动通信和先进公共交通。能够与用户操作系统实现的其他非接触式传输并发地运行MIFARE协议,这使得 能够将新服务与基于MIFARE的现有应用(例如,售票)组合在单个基于双接口控制器的智 能卡上。SmartMX卡能够仿真MIFARE经典设备,从而使该接口与任何安装的MIFARE经典基 础设施兼容。非接触式接口可以用于通过任何协议,特别是通过MIFARE协议和自定义的非 接触式传输协议,来进行通信。SmartMX使得能够容易地实施现有技术的操作系统和开放平台技术方案(包括 JCOP(Java卡操作系统)),并提供优化的特征集合连同最高安全等级。SmartMX结合了一 系列的安全性特征,以对抗例如DPA、SPA等辅助信道攻击。真实的抗冲突方法(acc. ISO/ IEC14443-3)使多个卡能够被同时处理。应该注意,MIFARE经典卡的仿真不仅仅局限于SmartMX卡,还可能存在其他的现 有或未来的智能卡能够仿真MIFARE经典卡。最近,已经开发了包含MIFARE设备的移动通信设备,MIFARE设备被配置为MIFARE 经典卡、或者例如SmartMX卡等的MIFARE仿真设备。这些移动通信设备包括例如具有近场 通信(NEC)能力的移动电话,但是不限于移动电话。通常由服务提供商或可信服务管理方通过移动网络运营商(MNO)的空中 (Over-The-Air, OTA)传输服务,将MIFARE应用安装在例如NFC移动电话等移动通信设备 中,移动网络运营商(MNO)向客户提供全范围的移动服务,特别是提供UICC和NFC终端,加 上所述的空中传输服务。服务提供商向客户提供非接触式服务(服务提供商例如是银行、 公共交通公司、特许项目拥有方等)。可信服务管理方向MNO客户基站安全地分发和管理服 务提供商的服务。可信服务管理方的角色是为服务提供商提供单个接触点,以通过MNO访 问服务提供商的客户基站,并代表服务提供商管理移动MFC应用的安全下载和生命周期管 理。无论是服务提供商还是可信服务管理方将MIFARE应用发送给移动通信设备,由于OTA 传输服务(例如,GSM通信)的传送速率的限制,MIFARE应用的安装通常变得非常耗时,从 而降低了用户体验。为了减少MIFARE应用的传输时间,考虑在将其通过空中发送至移动通信设备之 前对MIFARE应用进行压缩。但是,例如zip等标准压缩工具在所有移动通信设备中都不可 用,因此阻止了在发射机端使用这种标准压缩。此外,标准压缩工具没有考虑到MIFARE应 用的特定内容和结构,导致相当大的计算开销,这可能在必须在具有有限计算能力的移动 通信设备中解压利用标准压缩工具压缩的MIFARE应用时尤其不利。因此,仍然需要针对 MIFARE应用的、考虑到MIFARE应用的特定结构的压缩算法。利用这种特定的压缩算法,应 该能够在压缩侧和解压缩侧都实现高压缩率和低计算负载。

发明内容
为实现上述目的,提供了根据本发明技术特征的压缩方法,根据本发明的压缩方 法的特征在于如下,即一种用于压缩MIFARE应用的压缩方法,MIFARE应用被组织在至少一个扇区中,所述至少一个扇区包括布置成数据块和扇区尾部的扇区数据,其中压缩方法包括在扇区数据中搜索连续出现的相同数据值,并将检测到的具有相同数据值的连续 数据替换为包括所述数据值以及对具有所述数据值的连续扇区数据的数目进行指示的数 字的序列;以及/或者搜索所有不同的扇区尾部值,并将所有的扇区尾部替换为对所述不同的扇区尾部 值的相应扇区尾部值的参考。为实现上述目的,提供了根据本发明技术特征的解压缩方法,根据本发明的解压 缩方法的特征在于如下,即一种对包含MIFARE应用的数据流进行解压缩的方法,所述MIFARE应用是已根据 权利要求1到6之一所述的压缩方法中定义的压缩规则而压缩的,其中解压缩方法包括对数据流进行解析以获得符合上述定义的任何压缩规则的MIFARE应用的压缩数 据,如果找到这种压缩数据,则对所述压缩数据逆向地应用所述压缩规则,从而重建MIFARE应用。为实现上述目的,提供了根据本发明技术特征的计算机程序产品,以使根据本发 明的计算机程序产品可直接加载到计算机的存储器或移动通信设备的存储器上,其中计算 机程序产品包括软件代码部分,当在计算机或移动通信设备上运行所述产品时,软件代码 部分用于执行根据本发明的压缩或解压缩方法的步骤。为实现上述目的,根据本发明的移动通信设备包括算术逻辑单元和存储器,并处 理上段所述的解压缩计算机程序产品。优选地,该移动通信设备配置为移动电话,优选地具 有NFC功能。根据本发明的技术特征提供了如下优点考虑到MIFARE应用的特定结构来执行 MIFARE应用的压缩,由此在压缩侧和解压缩侧都实现高压缩率和低计算负载。权利要求2到6之一所要求的技术手段提供了如下优点限定了高效的压缩规则, 能够容易地以软件代码实现,需要较低的计算负载。在阅读下面详细描述时,其他优点将显 而易见。


下面,参照示例实施例更加详细地描述本发明。但是,本发明不限于该示例实施 例。图1示出了 MIFARE标准Ik EEPROM的存储组织。图2示出了 MIFARE存储器的制造商块。图3示出了 MIFARE存储器扇区的扇区尾部。图4示出了包括发送方、空中传输线路和移动通信设备形式的接收方在内的电信 系统的示意框图。图5示出了 MIFARE应用的组织示意图。图6示出了构成本发明MIFARE应用压缩方法的元素的扇区尾部值和扇区索引表 的表示。图7示出了构成本发明MIFARE应用压缩方法的元素的数据流的表示。
具体实施例方式已经参照图1到3说明了 MIFARE标准Ik EEPROM的存储组织。图5说明了 MIFARE 应用的普遍特征,在该具体示例中,MIFARE应用MIA具有IkB的大小。这有助于更好理解本 发明压缩算法的关键特征。图5所示的MIFARE应用包括16个扇区(扇区0x00到OxOF),每 个扇区具有64字节的长度,划分成48字节的扇区数据以及16字节的扇区尾部。该MIFARE 应用的扇区0x00和0x01包括第一扇区尾部A,其对于两个所述扇区0x00和0x01而言是相 同的。随后的14个扇区(扇区0x02到OxOF)包括第二扇区尾部B,其对于所有扇区0x02 到OxOF而言是相同的。扇区0x02到OxOF的数据块中的扇区数据只包含值0x00,另一方 面,前两个扇区0x00和0x01的数据块中的扇区数据包含不可预测的数据(例如,应用的名 称,有关终端用户的一些数据,等等)。如图4虚线箭头所示,在不应用任何压缩机制的情况下,必须通过移动网络运营 商的空中服务0ΤΑ,从发送方1 (例如可信服务管理方或服务提供商)向移动通信设备2 (例 如NFC移动电话)发送该MIFARE应用MIA的1024字节,其中移动通信设备2包含MIFARE 存储设备3,该MIFARE存储设备3可以被配置为经典MIFARE存储卡或仿真MIFARE存储设 备。例如,可以将所述1024字节的数据作为一个1024字节的阵列或作为16个64字节的 阵列来发送。应当注意,移动通信设备2包括处理器和随机存取存储器(图中未示出),用 于执行软件SW。软件SW包括适于执行和管理移动通信设备2的所有功能的操作系统。软 件SW还包括MIFARE应用管理器,其具有将MIFARE应用安装在MIFARE存储设备3中的能 力。将理解,通过空中服务OTA以未压缩形式传输图5的MIFARE应用会是耗时的,因此不 是优选的。相反,下文描述的可以安装在发送方1中的压缩算法CMP非常有利,能够减少通 过空中服务OTA的数据负载,从而加速MIFARE应用的传输。以下观察对于本发明的MIFARE应用压缩算法是必要的。对于MIFARE应用的扇区尾部的两个一般性观察可以是■一般而言,多扇区MIFARE应用的扇区尾部只有少许的不同值,在大多数情况下 只有1个或2个不同值。■在扇区尾部中,密钥A和密钥B彼此不同。对于MIFARE应用扇区数据的以下一般性观察可以是■ MIFARE应用通常具有两个不同类型 将首先发布的外壳(shell); 将稍后发布的更新,填充在外壳中。■外壳通常是较大的、但是几乎不包含信息的MIFARE应用(1KB)。这几乎是“空 外壳”(数据具有本质上相同的值,一般是0x00)。■更新包括少量数据,一般是1个扇区(48字节)。本发明的MIFARE应用压缩算法基于上述一般性观察。在一方面,MIFARE应用扇 区尾部的压缩基于如下事实多扇区MIFARE应用的扇区尾部只有少许的不同值,通常只有 1个或2个不同值。本发明压缩算法利用上述观察来压缩MIFARE应用。对于MIFARE应用扇区数据,下面的策略十分重要■对于外壳应用,由于这种应用大小较大(Ik),因此确实需要压缩,该压缩必须利用如下事实外壳应用内的数据的值对于应用的几乎所有数据都是相同的。■对于包括具有不可预测的值的少量数据(48字节)的更新,压缩更新的尝试是 不值得的、或者甚至可能是有害的,因为这可能产生更大量的数据。回到对MIFARE应用扇区尾部的观察,本发明压缩算法的第一方面涉及图6的图表 所示的所有扇区尾部的因子分解。因子分解意味着不是要传输16个扇区尾部,而是创建扇 区尾部值表Al,其包含且仅包含MIFARE应用的所有不同的扇区尾部值,并且创建扇区索引 表A2,其针对每个扇区定义了扇区尾部值表Al中的哪个扇区尾部值对应于相应扇区的扇 区尾部。对于图5的MIFARE应用示例,上述压缩规则得到具有两个元素的扇区尾部值表 Al,两个元素即是包含尾部A、索引为0的元素,以及包含尾部B、索引为1的元素。扇区索 引表A2包含16个元素,每个元素被分配给MIFARE应用MIA的扇区0x00到OxOF中的相应 一个。从图6可以看出,扇区索引表A2的前两个元素包含值0 (指向扇区尾部值表Al的元 素0中的尾部A),扇区索引表A2的后14个元素包含值1 (指向扇区尾部值表Al的元素1 中的尾部B)。通过实施本发明MIFARE应用压缩算法CMP中的这些压缩规则,发送方1必须 发送扇区尾部值表Al和扇区索引表A2,扇区尾部值表Al包括两个扇区尾部值(总计32字 节),扇区索引表A2包括16字节,发送方1不必再为未压缩MIFARE应用示例而发送16个 扇区尾部,每个扇区尾部16字节,即256字节。通过使用本发明提出的MIFARE应用压缩, 对于扇区尾部,可以达到接近80 %的压缩率。本发明压缩算法的第二方面涉及MIFARE应用扇区数据。如上所述,MIFARE应用 的每个扇区的扇区数据包括3个块,每个块长16字节。该方面的目标是将包含相同值的块 替换为这些值本身。为此,针对所有扇区数据采用如下格式通过特别的扇区分离字符,例 如字符“/”,将每个扇区与相邻扇区分离,并且通过特殊的块分离字符,例如字符“-”,将扇 区内的每个块分离。作为附加规则,定义了 如果至少两个连续块包含相同数据,则在块分 离字符之后的第一个值指示数据值,第二个值指示只具有该值的数据的连续块的数目,第 二个值之后是另一块分离字符。因此,如果两个块分离字符之间的数据流的长度是16 当前块包含未压缩的不可预测数据;1 当前块包含相同值的16次序列(例如,0x00表示该块充满了 0x00);2 当前块以及后续的若干个块包含相同值(例如,0x000x02表示当前块和后两个 块充满了 0x00)。通过实施本发明MIFARE应用压缩算法CMP中的这些压缩规则,发送方1必须向移 动通信设备2发送数据流B,数据流B如图7所示(针对图5的示例性MIFARE应用),具有 例如106字节的长度,包括扇区0x00的48字节(3个块,每个块16字节)的不可预测数据, 扇区0x01的48字节的不可预测数据,指示14个连续扇区0x02到OxOF在所有数据元素中 只包含值0的两个字节(这对于MIFARE外壳应用而是十分典型的),以及8个字节的扇区 分离字符和块分离字符。与这里的106字节相比,发送每个均包括48字节的16个扇区的 扇区数据将总计高达768字节。因此,本发明提出的压缩规则得到了近似86%的压缩率。为了在移动通信设备2中重建压缩的MIFARE应用,移动通信设备2的软件SW包 括解压缩模块DEC,其对输入数据进行解析,以检测扇区尾部值表Al、扇区索引表A2和压缩 数据流B,并将它们与未压缩MIFARE应用MIA区分开来。例如,当扇区尾部值表Al、扇区索引表A2、压缩数据流B和未压缩MIFARE应用MIA具有能够在发送方端在发送之前添加的特 定首部标志时,可以非常容易地进行区分。如果解压缩模块DEC检测到扇区尾部值表Al和 匹配的扇区索引表A2,解压缩模块DEC通过逆向应用本发明压缩算法的第一方面的压缩规 则,来重建所有扇区的扇区尾部。如果解压缩模块DEC检测到压缩数据流B,则解压缩模块 DEC通过逆向应用本发明压缩算法的第二方面的压缩规则,来重建所有扇区的扇区数据。如 果解压缩模块DEC检测到未压缩MIFARE应用MIA,则解压缩模块DEC不对其进行任何处理。本发明的压缩和解压缩方法可以硬件形式嵌入、或者通过在发送方1和移动通信 设备2中的数据处理设备可执行的软件的协助来嵌入。在许多情况下,在这种数据处理设 备中,例如在ROM、EPROM或任何其他永久性存储器中,已预先存储计算机程序产品,该计算 机程序产品包括软件代码部分,当在数据处理设备上运行计算机程序产品时,软件代码部 分用于执行根据本发明的方法步骤。也可以通过其上存储有计算机程序产品的数据载体的 协助,将计算机程序产品加载到数据处理设备中。在上述两种情况下,典型地,可以将计算 机程序产品加载到设备的工作存储器中,例如RAM中,并且由设备的处理器执行计算机程 序的软件部分。应该注意,上述实施例示出了而不是限制本发明,本领域技术人员能够在不背离 所附权利要求的范围的情况下设计许多备选实施例。在权利要求中,任何放置在括号中的 附图标记不应当视为限制该权利要求。用语“包括”不排除权利要求中列举的元素或步骤 之外的其他元素或步骤的存在。元素之前的不定冠词“a”或“an”不排除多个该元素的存 在。在枚举多个装置的设备权利要求中,这些装置中的若干个可以由同一个硬件项目来实 现。特定手段在相互不同的从属权利要求中被引述这一事实并不是表示不能够有利地使用 这些手段的组合。
8
权利要求
一种用于压缩MIFARE应用(MIA)的压缩方法,MIFARE应用被组织在至少一个扇区中,所述至少一个扇区包括布置成数据块和扇区尾部的扇区数据,其中所述压缩方法包括在扇区数据中搜索连续出现的相同数据值,并将检测到的具有相同数据值的连续数据替换为包括所述数据值以及对具有所述数据值的连续扇区数据的数目进行指示的数字的序列;以及/或者搜索所有不同的扇区尾部值,并将所有的扇区尾部替换为对所述不同的扇区尾部值的相应扇区尾部值的参考。
2.根据权利要求1所述的压缩方法,其中,对于扇区数据块,在整个块上搜索出现的相 同数据值,并将检测到的所有数据元素中都包含相同数据值的每个块替换为该数据值。
3.根据权利要求2所述的压缩方法,其中,如果检测到至少两个连续块在其所有数据 元素中都包含相同数据值,则将这些块替换为包括所述数据值以及对检测到的连续块的数 目进行指示的数字在内的序列。
4.根据权利要求2或3所述的压缩方法,其中,通过预定义的块分离字符对表示块的数 据进行分离。
5.根据权利要求2或3所述的压缩方法,其中,通过预定义的扇区分离字符对扇区进行 分离。
6.根据权利要求1所述的压缩方法,其中,创建扇区尾部值表(Al),所述扇区尾部值表 包含所有不同的扇区尾部值,并且创建扇区索引表(A2),所述扇区索引表针对每个扇区定 义了扇区尾部值表(Al)中的哪个扇区尾部值对应于相应扇区的扇区尾部。
7.一种对包含MIFARE应用(MIA)的数据流进行解压缩的方法,所述MIFARE应用是已 根据权利要求1到6任一项所述的压缩方法中定义的压缩规则而压缩的,其中解压缩方法 包括解析数据流以获得符合上述定义的任何压缩规则的MIFARE应用的压缩数据,如果 找到这种压缩数据,则对所述压缩数据逆向地应用所述压缩规则,从而重建MIFARE应用 (MIA)。
8.一种计算机程序产品,可直接加载到计算机的存储器中,其中计算机程序产品包括 软件代码部分,当在计算机上运行时,软件代码部分用于执行权利要求1到6任一项所述的 压缩方法的步骤。
9.一种计算机程序产品,可直接加载到移动通信设备(2)的存储器中,其中计算机程 序产品包括软件代码部分,当在移动通信设备(2)上运行时,软件代码部分用于执行权利 要求7所述方法的步骤。
10.根据权利要求8或9所述的计算机程序产品,其中,计算机程序产品存储在计算机 可读介质中,或者能够经由通信网络从远程服务器下载。
11.一种移动通信设备,具有算术逻辑单元和存储器,其中移动通信设备(2)适于处理 权利要求9所述的计算机程序产品。
12.根据权利要求11所述的移动通信设备,被配置为优选地具有NFC功能的移动电话。
全文摘要
MIFARE应用被组织在至少一个扇区中,至少一个扇区包括布置成数据块和扇区尾部的扇区数据。一种MIFARE应用压缩方法包括在扇区数据中搜索连续出现的相同数据值,并将检测到的具有相同数据值的连续数据替换为包括所述数据值以及对具有所述数据值的连续扇区数据的数目进行指示的数字在内的序列;以及/或者搜索所有不同的扇区尾部值,并将所有的扇区尾部替换为对所述不同的扇区尾部值的各个扇区尾部值的参考。
文档编号H03M7/30GK101911500SQ200980102119
公开日2010年12月8日 申请日期2009年1月12日 优先权日2008年1月14日
发明者亚历山大·康达, 巴普帝斯特·阿弗尔德, 维森特·兰蒙尼尔 申请人:Nxp股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1