智能卡的差错校正
发布时间:2008/11/22 0:00:00 访问次数:623
人们不仅要检测出存储区中的差错,还应改正它们,于是就出现了差错校正码,如图1所示。由于用编程来计算这些编码差错的花费很大,且仅能用来纠正低差错率的编码,再用它来保护智能卡存储器就更成问题了。而智能卡中的eeprom存储器是面向页面的,整个页面常常会由于一个差错而失效,只有能纠正成簇的差错方法才有意义。于是,就产生了新的差错校正技术。
图1 差错校正码的基本应用原理
最简单的技术方案是多重存储数据,物理上分开存储页面并在读出数据时采用多数表决法。通常用三重存储,采用3中取2表决。这种方法使占较少内存用量的变型是存储在两个位置上,对每个位置都采用edc校验和保护,检验两个edc值可以检测出一个存储器差错。这样也可以识别出差错发生的存储段。没有检测出差错的存储段必定含有有效数据,它可用来恢复故障的存储段。
当然,使用差错校正法显然需要额外的存储量,但对少量的数据而言,它仍在可接受的限度之内。主要的好处是不需要用复杂的编码量大的算法来计算数据。
作为多重数据存储保护方案的变型,可以采用诸如肫ed solomon算法的差错校正算法。它特别适合于成簇的差错,就像在智能卡中由于页面失效所发生的情形。用汇编语言编程时,算法要占用数百字节的代码空间,而ecc数据的大小主要取决于那些必须检测出与/或正确校正的差错概率。
然而,关于差错校正法在智能卡中应用的几个基本注意点必须说明。乍一看,用这些方法去消除发生在eeprom中的差错很有吸引力。然而,这个数据安全性是以大量的严重缺点为代价来换取的。首先,数据写人存储器,因为它们必须存储在多个位置,不仅占用大量的存储空间所需的时间也明显增大了。另外,校正基于页面eeprom所发生的典型大小的成簇差错的算法是复杂的,并且还需要给出使用edo代码的巨大存储空间。然而,最基本的缺点甚至是更为严重的,即采用差错校正算法时,因为算法只能在最多为某数量级的差错时才能正确工作,不能排除有可能在校正数据中产生差错。如果操作系统能自动校正了存储器中的差错,原则上并不能断定已进行了校正。
例如,假定自动差错校正被用于电子钱包的余额,系统运营者将永远不会对发生些什么情况有把握。余额可能被正确地校正了,也存在着一定的概率使校正后的余额过高或过低。在这种情况下,必须要记住智能卡是大量生产的商品,当有故障时直接更换就可以了。
当数据内容发生问题时,一个允许人们干涉的高水平系统必须决定要怎么做。例如,在智能卡钱包第1次出现差错时,应确信持卡人的余额是人工再存人的。如果错误一再地重复出现,因为这里存在着eeprom已经受到了欺诈性的操纵的可能性,这是不能在卡中由差错校正码处理的,相反,必须由系统管理者干涉。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
人们不仅要检测出存储区中的差错,还应改正它们,于是就出现了差错校正码,如图1所示。由于用编程来计算这些编码差错的花费很大,且仅能用来纠正低差错率的编码,再用它来保护智能卡存储器就更成问题了。而智能卡中的eeprom存储器是面向页面的,整个页面常常会由于一个差错而失效,只有能纠正成簇的差错方法才有意义。于是,就产生了新的差错校正技术。
图1 差错校正码的基本应用原理
最简单的技术方案是多重存储数据,物理上分开存储页面并在读出数据时采用多数表决法。通常用三重存储,采用3中取2表决。这种方法使占较少内存用量的变型是存储在两个位置上,对每个位置都采用edc校验和保护,检验两个edc值可以检测出一个存储器差错。这样也可以识别出差错发生的存储段。没有检测出差错的存储段必定含有有效数据,它可用来恢复故障的存储段。
当然,使用差错校正法显然需要额外的存储量,但对少量的数据而言,它仍在可接受的限度之内。主要的好处是不需要用复杂的编码量大的算法来计算数据。
作为多重数据存储保护方案的变型,可以采用诸如肫ed solomon算法的差错校正算法。它特别适合于成簇的差错,就像在智能卡中由于页面失效所发生的情形。用汇编语言编程时,算法要占用数百字节的代码空间,而ecc数据的大小主要取决于那些必须检测出与/或正确校正的差错概率。
然而,关于差错校正法在智能卡中应用的几个基本注意点必须说明。乍一看,用这些方法去消除发生在eeprom中的差错很有吸引力。然而,这个数据安全性是以大量的严重缺点为代价来换取的。首先,数据写人存储器,因为它们必须存储在多个位置,不仅占用大量的存储空间所需的时间也明显增大了。另外,校正基于页面eeprom所发生的典型大小的成簇差错的算法是复杂的,并且还需要给出使用edo代码的巨大存储空间。然而,最基本的缺点甚至是更为严重的,即采用差错校正算法时,因为算法只能在最多为某数量级的差错时才能正确工作,不能排除有可能在校正数据中产生差错。如果操作系统能自动校正了存储器中的差错,原则上并不能断定已进行了校正。
例如,假定自动差错校正被用于电子钱包的余额,系统运营者将永远不会对发生些什么情况有把握。余额可能被正确地校正了,也存在着一定的概率使校正后的余额过高或过低。在这种情况下,必须要记住智能卡是大量生产的商品,当有故障时直接更换就可以了。
当数据内容发生问题时,一个允许人们干涉的高水平系统必须决定要怎么做。例如,在智能卡钱包第1次出现差错时,应确信持卡人的余额是人工再存人的。如果错误一再地重复出现,因为这里存在着eeprom已经受到了欺诈性的操纵的可能性,这是不能在卡中由差错校正码处理的,相反,必须由系统管理者干涉。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
上一篇:智能卡的数据压缩
上一篇:智能卡的CRC校验和