专利名称:一种智能卡内存中数据运算的方法及一种智能卡的制作方法
技术领域:
本发明涉及智能卡的技术领域,特别是涉及一种智能卡内存中数据运算的方法及 一种智能卡。
背景技术:
智能卡又称为IC卡,英文名称为SMART card或htegrated Circuit Card。智能 卡中集成了微处理器CPU、存储单元(包括随机存储器RAM、程序存储器ROM (FLASH)、用户数 据存储器EEPROM等)以及芯片操作系统COSkhipoperating system),构成一个完整的计 算机系统。近年来,智能卡在电信,交通,金融等领域得到了广泛应用。
智能卡在处理外部指令时,会将本身存储的数据和从外部接收的数据先放入内 存。然而在某些情况下,内存会发生跳变,从而使得内存中的数据也会发生变化,此时如果 存放在内存中的数据是关键数据,如电子钱包余额等,将给智能卡的应用带来很大的影响。
以电子钱包余额这种关键数据为例,智能卡应用中的电子钱包本来是存储在 EEPROM中的。当进行刷卡消费或存款等操作时,就需要将EEPROM中的钱包金额放入内存中 进行运算,通常,电子钱包金额可能由多个数据分组组成,但在对金额进行加减操作时,只 能将金额的每个数据分组依次放入累加器中进行运算,若此时内存发生跳变,则未参与运 算的其它数据分组可能发生跳变,但卡片不会发现此错误,只会直接把运算后的结果存储 在EEPROM中的钱包文件中。
例如,在刷卡消费前,数据都正确,钱包金额为100元,刷卡消费2元,在刷卡消费 过程中,由于数据进入内存运算时内存发生跳变导致计算出错,刷卡消费完成后,读钱包余 额却发现钱包余额为300元。由于卡片无法检测逻辑计算结果是否正确,因此卡片无法发 现结果错误。
因而,目前需要本领域技术人员解决的一个技术问题就是如何能够创新地提出 一种智能卡内存中数据运算的机制,以对智能卡内存中的数据进行防跳变保护,提高智能 卡使用的安全性。发明内容
本发明所要解决的技术问题是提供一种智能卡内存中数据运算的方法,用以对智 能卡内存中的数据进行防跳变保护,提高智能卡使用的安全性。
本发明还提供了一种智能卡,用以保证上述方案在实际中的应用。
为了解决上述问题,本发明公开了一种智能卡内存中数据运算的方法,包括
针对参与内存运算的数据设置数据分组,所述数据分组中包括信息位与校验位;
在当前数据分组参与内存运算前,针对当前未参与运算的其它数据分组中的信息 位,获取对应的校验位;
在当前数据分组运算完成后,依据所述信息位及校验位校验其它数据分组是否发 生跳变。
优选的,所述的方法,还包括
若校验到某个数据分组发生跳变,则对该数据分组进行纠错。
优选的,所述的方法,还包括
在进行纠错后,返回出错数据分组的信息。
优选的,所述的方法,还包括
若校验到某个数据分组发生跳变,则返回内存错误信息,并终止运算。
优选的,在当前数据分组参与内存运算前,还包括
将所述获取到的校验位保存在内存中的固定位置。
优选的,所述的方法,还包括
存储所述信息位与校验位的对应关系。
优选的,所述的方法,还包括
根据所述数据分组设置校正因子,并保存所述校正因子与数据分组中各信息位或 校验位的对应关系;
依据所述校正因子与数据分组的对应关系,生成所述数据分组中信息位与校验位 的对应关系;
所述依据信息位及校验位校验其它数据分组是否发生跳变的步骤包括
依据数据分组中的信息位及校验位计算校正因子;
依据所述校正因子校验该数据分组是否发生跳变。
优选的,所述对数据分组进行纠错的步骤包括
若依据所述校正因子判定当前数据分组发生跳变,则依据所述校正因子与数据分 组中信息位或校验位的对应关系,对相应位置的数据进行纠错。
本发明实施例还公开了一种智能卡,包括
设置模块,用于针对参与内存运算的数据设置数据分组,所述数据分组中包括信 息位与校验位;
获取模块,用于在当前数据分组参与内存运算前,针对当前未参与运算的其它数 据分组中的信息位,获取对应的校验位;
检测模块,用于在当前数据分组运算完成后,依据所述信息位及校验位校验其它 数据分组是否发生跳变。
优选的,所述的智能卡,还包括
纠错模块,用于在校验到某个数据分组发生跳变时,对该数据分组进行纠错。
优选的,所述的智能卡,还包括
错误信息提示模块,用于在进行纠错后,返回出错数据分组的信息。
优选的,所述的智能卡,还包括
错误处理模块,用于在校验到某个数据分组发生跳变时,返回内存错误信息,并终 止运算。
优选的,所述的智能卡,还包括
保存模块,用于将所述获取到的校验位保存在内存中的固定位置。
优选的,所述的智能卡,还包括
记录模块,用于存储所述信息位与校验位的对应关系;
优选的,所述的智能卡,还包括
校正因子预置模块,用于根据所述数据分组设置校正因子,并保存所述校正因子 与数据分组中各信息位或校验位的对应关系;
对应关系生成模块,用于依据所述校正因子与数据分组的对应关系,生成所述数 据分组中信息位与校验位的对应关系;
所述检测模块包括
校正因子计算子模块,用于依据数据分组中的信息位及校验位计算校正因子;
校验子模块,用于依据所述校正因子校验该数据分组是否发生跳变。
优选的,所述纠错模块包括
定位修改子模块,用于在依据所述校正因子判定当前数据分组发生跳变时,依据 所述校正因子与数据分组中信息位或校验位的对应关系,对相应位置的数据进行纠错。
与现有技术相比,本发明具有以下优点
本发明针对参与内存运算的数据,尤其是参与内存运算的关键数据,设置包括信 息位和校验位的数据分组,并记录各个数据分组的信息位和校验位的对应关系;在数据中 的某一个数据分组参与运算前,获取数据中没有参与运算的其它数据分组的信息位和校验 位的状态;在该数据分组的运算完成后,依据所述信息位及校验位校验其它数据分组是否 发生跳变;如果某个数据分组跳变,则提供错误信息、终止交易或者进行纠错,从而防止卡 片在进行数据中某个数据分组操作时,其它数据分组发生跳变的情况,提高智能卡应用的 安全性。
图1是本发明的一种智能卡内存中数据运算的方法实施例1的步骤流程图2是本发明的一种智能卡内存中数据运算的方法实施例2的步骤流程图3是本发明的一种智能卡内存中数据运算的方法实施例3的步骤流程图4是本发明的一种智能卡内存中数据运算的系统实施例1的结构框图5是本发明的一种智能卡内存中数据运算的系统实施例2的结构框图6是本发明的一种智能卡的结构图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。
本发明实施例的核心构思之一在于,针对参与内存运算的数据,尤其是参与内存 运算的关键数据,在数据中的某一个数据分组参与运算后,对数据中没有参与运算的其它 数据分组进行校验,如果检测到异常,则提供错误信息、终止交易或者进行纠错,从而防止 卡片在进行数据中某个数据分组操作时,其它数据分组发生跳变的情况,提高智能卡应用 的安全性。
参考图1,示出了本发明的一种智能卡内存中数据运算的方法实施例1的流程图, 具体可以包括以下步骤
步骤101、针对参与内存运算的数据设置数据分组,所述数据分组中包括信息位与校验位;
步骤102、在当前数据分组参与内存运算前,针对当前未参与运算的其它数据分组 中的信息位,获取对应的校验位;
步骤103、在当前数据分组运算完成后,依据所述信息位及校验位校验其它数据分 组是否发生跳变。
应用本发明实施例,首先需要针对当前参与内存运算的数据划分信息位,并针对 信息位计算其对应的校验位,以生成由信息位及对应校验位组成的数据分组,内存运算即 以数据分组为单位。在实际中优选的是,一个数据分组中的信息位可以为半个字节G个信 息位)、1个字节(8个信息位)、或2个字节(16个信息位),校验位则可依据当前采用的校 验方法来设定,如1位、3位、6位等,本领域技术人员依据实际情况设置即可,本发明对此均 不作限制。
在具体实现中,当某一个数据分组参与运算前,需要针对没有参与运算的数据分 组中的信息位分别提取其对应的校验位,并存储在内存中的固定位置。然后将当前要运算 的数据分组送入累加器进行运算。
在当前数据分组的运算完成,从寄存器中放回内存中对应位置后,对其它没有参 与运算的数据分组中的信息位及校验位进行检测。在实际中,检测方法可以采用奇偶校验, 前向纠错等,本领域技术人员依据应用需要采用任一种方式均可行,本发明对此无需加以 限制。
如果检测没有发现错误,表示没有参与运算的数据没有发生跳变,则继续对其它 还没有运算的数据进行运算,直到所有数据参与完运算为止。如果检测发现错误,则提供错 误信息、终止交易或者进行纠错。
作为本发明的一种优选实施例,所述各数据分组与校验位的对应关系可以存储在 程序存储器ROM或用户数据存储器EEPROM中。
参考图2,示出了本发明的一种智能卡内存中数据运算的方法实施例2的流程图, 具体可以包括以下步骤
步骤201、针对参与内存运算的数据设置数据分组,所述数据分组中包括信息位与 校验位;
步骤202、根据所述数据分组设置校正因子,并保存所述校正因子与数据分组中各 信息位或校验位的对应关系;
步骤203、依据所述校正因子与数据分组的对应关系,生成所述数据分组中信息位 与校验位的对应关系;
步骤204、保存所述信息位与校验位的对应关系;
步骤205、在当前数据分组参与内存运算前,针对当前未参与运算的其它数据分组 中的信息位,获取对应的校验位;
步骤206、在当前数据分组运算完成后,依据数据分组中的信息位及校验位计算校 正因子;
步骤207、依据所述校正因子校验该数据分组是否发生跳变,若是,则执行步骤 208 ;
步骤208、若依据所述校正因子判定当前数据分组发生跳变,则依据所述校正因子与数据分组中信息位或校验位的对应关系,对相应位置的数据进行纠错;
步骤209、在进行纠错后,返回出错数据分组的信息。
若检测没有发生错误,则返回步骤205继续对下一数据分组进行运算
应用本实施例对没有参与运算的数据分组进行校验,不仅可以发现错误,而且具 有一定的纠错能力。在实际中,所采用的检测方法可以是前向纠错方法。
为使本领域技术人员更好地理解本发明,以下通过一个具体例子进一步说明本实 施例。
假设η = 7,r = 4,k = 3。η表示待校验数据分组的信息位和校验位的位数,r表 示待校验数据分组的信息位的位数,k表示校验位的位数。
步骤Si、首先确定校正因子与待校验数据分组的信息位之间的对应关系,假设该 对应关系如以下表一所示
表一
权利要求
1.一种智能卡内存中数据运算的方法,其特征在于,包括针对参与内存运算的数据设置数据分组,所述数据分组中包括信息位与校验位; 在当前数据分组参与内存运算前,针对当前未参与运算的其它数据分组中的信息位, 获取对应的校验位;在当前数据分组运算完成后,依据所述信息位及校验位校验其它数据分组是否发生跳变。
2.如权利要求1所述的方法,其特征在于,还包括若校验到某个数据分组发生跳变,则对该数据分组进行纠错。
3.如权利要求2所述的方法,其特征在于,还包括 在进行纠错后,返回出错数据分组的信息。
4.如权利要求1所述的方法,其特征在于,还包括若校验到某个数据分组发生跳变,则返回内存错误信息,并终止运算。
5.如权利要求1所述的方法,其特征在于,在当前数据分组参与内存运算前,还包括 将所述获取到的校验位保存在内存中的固定位置。
6.如权利要求2或3所述的方法,其特征在于,还包括 存储所述信息位与校验位的对应关系。
7.如权利要求6所述的方法,其特征在于,还包括根据所述数据分组设置校正因子,并保存所述校正因子与数据分组中各信息位或校验 位的对应关系;依据所述校正因子与数据分组的对应关系,生成所述数据分组中信息位与校验位的对 应关系;所述依据信息位及校验位校验其它数据分组是否发生跳变的步骤包括 依据数据分组中的信息位及校验位计算校正因子; 依据所述校正因子校验该数据分组是否发生跳变。
8.如权利要求7所述的方法,其特征在于,所述对数据分组进行纠错的步骤包括 若依据所述校正因子判定当前数据分组发生跳变,则依据所述校正因子与数据分组中信息位或校验位的对应关系,对相应位置的数据进行纠错。
9.一种智能卡,其特征在于,包括设置模块,用于针对参与内存运算的数据设置数据分组,所述数据分组中包括信息位 与校验位;获取模块,用于在当前数据分组参与内存运算前,针对当前未参与运算的其它数据分 组中的信息位,获取对应的校验位;检测模块,用于在当前数据分组运算完成后,依据所述信息位及校验位校验其它数据 分组是否发生跳变。
10.如权利要求9所述的智能卡,其特征在于,还包括纠错模块,用于在校验到某个数据分组发生跳变时,对该数据分组进行纠错。
11.如权利要求10所述的智能卡,其特征在于,还包括错误信息提示模块,用于在进行纠错后,返回出错数据分组的信息。
12.如权利要求9所述的智能卡,其特征在于,还包括错误处理模块,用于在校验到某个数据分组发生跳变时,返回内存错误信息,并终止运算。
13.如权利要求9所述的智能卡,其特征在于,还包括保存模块,用于将所述获取到的校验位保存在内存中的固定位置。
14.如权利要求10或11所述的智能卡,其特征在于,还包括 记录模块,用于存储所述信息位与校验位的对应关系;
15.如权利要求14所述的智能卡,其特征在于,还包括校正因子预置模块,用于根据所述数据分组设置校正因子,并保存所述校正因子与数 据分组中各信息位或校验位的对应关系;对应关系生成模块,用于依据所述校正因子与数据分组的对应关系,生成所述数据分 组中信息位与校验位的对应关系; 所述检测模块包括校正因子计算子模块,用于依据数据分组中的信息位及校验位计算校正因子; 校验子模块,用于依据所述校正因子校验该数据分组是否发生跳变。
16.如权利要求15所述的智能卡,其特征在于,所述纠错模块包括定位修改子模块,用于在依据所述校正因子判定当前数据分组发生跳变时,依据所述 校正因子与数据分组中信息位或校验位的对应关系,对相应位置的数据进行纠错。
全文摘要
本发明提供了一种智能卡内存中数据运算的方法,包括针对参与内存运算的数据设置数据分组,所述数据分组中包括信息位与校验位;在当前数据分组参与内存运算前,针对当前未参与运算的其它数据分组中的信息位,获取对应的校验位;在当前数据分组运算完成后,依据所述信息位及校验位校验其它数据分组是否发生跳变。本发明可以对智能卡内存中的数据进行防跳变保护,提高智能卡使用的安全性。
文档编号G06F11/08GK102043683SQ201010607529
公开日2011年5月4日 申请日期2010年12月27日 优先权日2010年12月27日
发明者李必涛 申请人:北京握奇数据系统有限公司