CN104769675A - 数据处理 - Google Patents
数据处理 Download PDFInfo
- Publication number
- CN104769675A CN104769675A CN201380053018.1A CN201380053018A CN104769675A CN 104769675 A CN104769675 A CN 104769675A CN 201380053018 A CN201380053018 A CN 201380053018A CN 104769675 A CN104769675 A CN 104769675A
- Authority
- CN
- China
- Prior art keywords
- data
- function
- certain amount
- instance
- coded data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10009—Improvement or modification of read or write signals
- G11B20/10305—Improvement or modification of read or write signals signal quality assessment
- G11B20/10361—Improvement or modification of read or write signals signal quality assessment digital demodulation process
- G11B20/1037—Improvement or modification of read or write signals signal quality assessment digital demodulation process based on hard decisions, e.g. by evaluating bit error rates before or after ECC decoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B2020/1218—Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
- G11B2020/1222—ECC block, i.e. a block of error correction encoded symbols which includes all parity data needed for decoding
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Error Detection And Correction (AREA)
Abstract
一种根据第一预定函数处理数据的方法,该方法包括:接收一定量的编码数据,其中该一定量的编码数据是已经使用错误控制码进行编码的一定量的数据;以及使用第二预定函数处理该一定量的编码数据以生成输出;其中该第二预定函数对应于该第一预定函数,原因在于利用第二预定函数处理使用错误控制码进行编码的一些数据的结果等于利用错误控制码对利用第一预定函数处理所述一些数据的结果进行编码的结果。
Description
技术领域
本发明涉及处理数据的方法以及用于执行这样的方法的装置和计算机程序。
背景技术
错误控制码(ECC)是非常众所周知的。特别地,发送方可能希望将消息m发送给接收方。为了使发送方能够通过有噪声通信信道将消息m可靠地传送到接收方,发送方可以使用ECC来向消息m添加一定量的冗余(在被称为“编码”的处理中)以生成ECC的码字c。然后发送方可以将码字c发送给接收方而不是仅将消息m发送给接收方。接收方可以接收表示发送方所发出的码字c的数据c',如果通信信道没有把任何错误或噪声引入到码字c中,则该数据c'可以等于码字c;替换地,数据c'可以在添加了由有噪声通信信道引入的一个或多个错误的情况下等于码字c。接收方可以处理所接收的数据c'。如果ECC是错误纠正码,并且如果由有噪声通信信道引入码字c中以产生数据c'的错误的数目不超过ECC的错误纠正能力,那么由发送方施行的编码所引入的冗余允许接收方纠正错误并且从数据c'恢复原始消息m(在被称为“解码”的处理中)。如果ECC是错误检测码,并且如果由有噪声通信信道引入码字c中以产生数据c'的错误的数目不超过ECC的错误检测能力,那么由发送方施行的编码所引入的冗余允许接收方检测(尽管不一定纠正)这些错误(在同样被称为“解码”的处理中)。
一些ECC是所谓的“块”ECC。块ECC将k个符号长度的原始消息m变换成n个符号长度的码字c(其中n>k),其中这些符号取自某一符号字母表。假设将利用块ECC进行编码的原始量的数据D包括ak+b个符号(其中a和b为整数,a≥0且0≤b<k)。可以如下使用块ECC对原始量的数据D进行编码。如果a>0,那么从原始量的数据D形成每个具有k个符号长度的a个消息m1、……、ma(例如,消息mi包括数据D的第((i-1)k+1))个符号到第ik个符号,然后可以使用ECC对这些消息进行单独编码以形成相应的码字c1、……、ca。如果b≠0,那么形成消息m*,其中消息m*包括原始量的数据D的其余b个未编码符号(在以上示例中,为最后b个符号);消息m*的其余(k-b)个符号可以是冗余填充符号(例如,“0”符号),或者可以是原始量的数据D中的一些。然后使用ECC对该消息m*进行编码以形成码字c*。于是原始量的数据D的ECC编码形式包括c1、……、ca(如果a>0)连同c*(如果b≠0)。
在下文中,形成消息m或码字c的符号被视作,且被当作有限域GF(q)的元素,其中对于某个质数p和正整数f,q=pf,即GF(q)是符号字母表。于是t个符号s0、s1、……、st-2、st-1的字符串(或序列)被称为对应于这样的多项式或者可以由这样的多项式表示: 。因此,包括k个符号m0、m1、……、mk-2、mk-1的消息m对应于这样的多项式或者由这样的多项式表示:,并且包括n个符号c0、c1、……、cn-2、cn-1的码字c对应于这样的多项式或者由这样的多项式表示:。
特定类别的块ECC是所谓的“多项式”ECC。多项式ECC具有被称为其“生成器”多项式g(X)的关联多项式,该多项式g(X)具有n-k次和GF(q)中的系数。存在使用多项式ECC执行编码的许多方式。被称为“系统编码”的一种方式牵涉将消息m(X)编码为码字c(X),其中,其中r(X)是“奇偶校验”多项式,其被定义为除以g(X)的余数。被称为“非系统编码”的另一种方式牵涉将消息m(X)编码为码字c(X),其中c(X)=g(X)m(X)。存在从消息m(X)形成码字c(X)的其他方式,但是当且仅当对于最多k次的某个多项式v(X)来说w(X)=v(X)g(X)时,多项式w(X)是ECC的码字(不同的编码方法仅仅对应于可能的消息和可用码字之间的不同映射)。
存在各种众所周知的多项式ECC的示例。所有的“循环”ECC码都是多项式ECC,当且仅当g(X)是Xn-1的因数时,多项式ECC将是循环码。所谓的BCH码是特定形式的多项式ECC,其中选择生成器多项式使得ECC码字之间的汉明距离高(使得其错误纠正能力相应地高)。BCH码的子集是里德-所罗门(Reed-Solomon)码。对于里德-所罗门码来说,令s和t为作为该码的设计参数的正整数,那么:符号字母表为有限域GF(2s);n=2s-1;该码的错误纠正能力为t;t通过k=n-2t而与消息长度k有关;并且生成器多项式g(X)基于GF(2)上的s次本原多项式p(X),令α为p(X)的根,那么可以将g(X)定义为。里德-所罗门码是循环码。
多项式ECC是线性块码。特别地,令δ1和δ2为GF(q)的元素,并且令m1和m2为具有对应码字c1和c2的两个消息多项式。那么,由对消息进行编码产生的码字为。
由于ECC码及其性质是众所周知的,所以本文将不给出对他们的更详细的讨论。假定技术人员知道ECC码、ECC码的类型、施行ECC编码的方式以及施行ECC解码的对应方式。例如,已经非常详细地研究并评述了里德-所罗门码,并且对应的编码和解码方法是非常众所周知的。
“数据流变换”是一项用于帮助保护软件(例如程序或应用)免受由攻击者(其可能例如希望从软件获得秘密或敏感信息,诸如加密密钥)所施行的攻击的重要技术。在数据流变换的情况下,通过利用新代码重写(或替换)整个软件或部分软件来实现对软件数据和/或操作的保护,该新的(替换)代码通过对要保护的数据和/或操作施行一个或多个数据和/或操作变换来生成。这样的变换是众所周知的,并且有时被称为软件混淆技术。目前,新的代码(在应用特定数据和/或操作变换之后生成)被固定在原始软件的新版本内。将不同的数据变换应用于软件的相同数据和/或操作应当导致要保护的该软件的不同实例或版本。这样的多样性(即同一软件的不同实例)被称为“基于代码的多样性”。因此,为了获得不同多样化的软件实例,必须通过将不同数据和/或操作变换应用于同一软件来重复变换处理。从包括安全性可更新性的软件分发、部署和维护的观点来看,这样的基于代码的多样性引入了不可避免的开销和不便。
发明内容
根据本发明的第一方面,其提供了一种根据第一预定函数处理数据的方法,该方法包括:接收一定量的编码数据,其中该一定量的编码数据是已经使用错误控制码进行编码的一定量的数据;以及使用第二预定函数处理该一定量的编码数据以生成输出;其中该第二预定函数对应于该第一预定函数,原因在于利用第二预定函数处理使用错误控制码进行编码的数据的量的结果等于利用错误控制码对利用第一预定函数处理数据的量的结果进行编码的结果。
在一些实施例中,该方法包括:使用错误控制码来检测在所接收的一定量的编码数据中是否存在错误或者在输出中是否存在错误,并且如果检测到错误,则施行以下各项中的一个或多个:(a)将输出设置成与所接收的一定量的编码数据基本上不相关;(b)将输出设置成随机值;(c)对所接收的一定量的编码数据或者对输出施行错误控制码的错误纠正解码操作;(d)停止进一步处理操作。
根据本发明的第二方面,其提供了一种使得数据处理器能够根据第一预定函数处理数据的方法,该方法包括:生成第二函数,该第二函数对应于第一预定函数,原因在于利用第二函数处理使用预定错误控制码进行编码的数据的量的结果等于利用错误控制码对利用第一预定函数处理数据的量的结果进行编码的结果;以及将数据处理器配置成使用第二函数来处理编码数据,其中编码数据是根据错误控制码进行编码的数据。
在一些实施例中,不可能根据第二函数确定预定错误控制码的生成器多项式。
根据本发明的第三方面,其提供了一种将数据从第二实体提供到第一实体的方法,该第一实体被布置成通过执行根据本发明的第一方面的方法来根据第一预定函数处理数据,所述方法包括:第二实体使用错误控制码对数据进行编码从而生成一定量的编码数据;以及第二实体向第一实体提供该一定量的编码数据。
在一些实施例中,第二实体在向第一实体提供一定量的编码数据之前向该一定量的编码数据添加可纠正错误。该错误可以依赖于数据或者可以是随机生成的。在一些实施例中,第二实体被布置成在第一次向第一实体提供一定量的编码数据时向该一定量的编码数据添加第一错误,并且被布置成在第二次向第一实体提供一定量的编码数据时向该一定量的编码数据添加第二错误,其中第二错误不同于第一错误。
在一些实施例中,由第一实体和第二实体使用的错误纠正码至少部分地依赖于数据。
根据本发明的第四方面,其提供了一种被布置成执行上述方法中的任一项的系统。
根据本发明的第五方面,其提供了一种计算机程序,该计算机程序当被处理器执行时使得该处理器执行上述方法中的任一项。该计算机程序可以存储在计算机可读介质上。
利用本发明的实施例,可以将错误引入到提供自编码器的编码数据中,使得解码器能够在通过第二预定函数对编码数据(具有错误)进行处理之后消除错误的影响。以这种方式,有可能使用这样的错误来控制基于ECC的数据变换。这增强了可用的多样性水平,因为可以将多样性构造成两种多样性:(1)基于代码的多样性(不同的多样性来自于提供和执行不同的代码实例,其中通过将不同的变换应用于初始或基线代码来生成不同实例);以及(2)基于数据的多样性(不同的多样性来自于将不同的控制数据应用于多样化代码的同一版本)。因此,与当前存在的纯粹基于代码的多样性技术相比,根据本发明的实施例使用ECC提供了有助于增加可用多样性的量的有效方式。
而且,根据本发明的实施例使用ECC提供了一种混淆函数实现方式的方法并且提供了一种用于使攻击者更难以攻击一款软件(诸如通过设法施行故障注入攻击)的机制。
根据对本发明的以下描述,本发明的实施例的各种其他优点将变得显而易见。
附图说明
现在将仅仅通过举例的方式参照附图来描述本发明的实施例,在附图中:
图1A和1B一起示意性地图示了本发明的实施例的概貌;
图1C示意性地图示了使用ECC执行函数的现有技术方法;
图2示意性地图示了根据本发明的一个实施例的计算机系统的示例;
图3示意性地图示了根据本发明的一个实施例的用于实现点积操作的布置;
图4示意性地图示了用于实现一般操作的布置;以及
图5示意性地图示了根据本发明的一个实施例的系统。
具体实施方式
在随后的描述中和图中,描述了本发明的某些实施例。然而,将意识到的是,本发明不限于所描述的实施例,并且一些实施例可能不包括下文所描述的所有特征。然而,将显然的是,在不偏离如在所附权利要求中阐明的本发明的较宽精神和范围的情况下,可以在本文中做出各种修改和改变。
(1)系统概貌
图1A和1B一起示意性地图示了本发明的实施例的概貌。
在图1A中,预定函数F被布置成:(a)接收或获得一定量的输入数据D;(b)根据定义函数F的一个或多个预定处理步骤处理输入数据D;以及(c)输出或提供处理结果,即经处理的数据F(D)。
在本发明的实施例中,由函数F的对应变换版本(在图1B中标记为FT)替换函数F。在图1B中,函数FT被布置成:(a)接收或获得一定量的输入ECC编码数据E(D);(b)根据定义函数FT的一个或多个预定处理步骤处理输入ECC编码数据E(D);以及(c)输出或提供处理结果,即经处理的数据FT(E(D))。在下文中,给定量的数据D和ECC,将ECC编码应用于数据D的结果将被表示为E(D)。类似地,将ECC解码应用于数据D的结果将被表示为E-1(D)。函数FT与初始预定函数F有关,原因在于FT(E(D))=E(F(D)),或者另一种方式表示,F(D)=E-1(FT(E(D)))。这意味着对数据D的ECC编码版本E(D)施行函数FT的结果(即E(D)是函数FT的输入时)与对结果F(D)施行ECC编码的结果E(F(D))相同,所述结果F(D)是对数据D施行函数F的结果(即D是函数F的输入时)。
函数FT的使用提供了几个优点。特别地,参照图1C,假设一定量的数据D被接收到,或者其正被以ECC编码形式(即作为E(D))存储,并且假设意图生成将预定函数F应用于数据D的结果的ECC编码版本,即期望输出或存储或以其他方式提供E(F(D))。先前采用的方法将是如图1C中所示那样施行处理,即:(a)接收或获得一定量的输入ECC编码数据E(D);(b)对E(D)施行ECC解码从而确定初始量的数据D;(c)根据定义函数F的一个或多个预定处理步骤处理数据D;(d)对经处理的数据F(D)施行ECC编码从而生成E(F(D));以及(e)输出或提供E(F(D))。使用如图1B中图示的本发明的实施例实现了相同的最终效果(即输出或提供E(F(D)))。然而,在本发明的实施例中使用函数FT意味着不必对所接收的ECC编码数据E(D)施行图1C的ECC解码,并且不必对所计算的经处理的数据F(D)施行图1C的后续ECC编码。这有助于减少处理量和所需的功率,尤其是由于ECC编码并且当然由于ECC解码可能是计算密集的。
提供函数F的安全版本可能是合期望的。例如,函数F可以是整个加密处理或部分加密处理,并且可以包括或使用秘密信息(诸如加密密钥)并且因此可能合期望的是设法阻止攻击者(其可能例如希望操纵函数F的操作或者由函数F处理的数据,以便设法探知秘密信息,诸如由函数F或者在加密处理中其他地方使用的加密密钥)操纵函数F的操作或者由函数F处理的数据(或者至少设法使攻击者更难以成功操纵函数F的操作或者由函数F处理的数据从而实现期望的结果)。照此,可能合期望的是不以允许攻击者修改数据D或函数F的工作的方式将数据D和/或函数F的工作暴露给攻击者,即可能合期望的是提供函数F的混淆版本。因此,函数FT的使用使得人们能够提供编码数据E(D)作为输入(而非数据D)并且能够使用函数FT而非函数F,从而使得人们可以确定F(D)=E-1(FT(E(D)))。如根据下文的讨论将变得显而易见的,如果攻击者设法修改这样的编码输入数据E(D),或者设法修改函数FT的操作,那么可以检测到这样的修改(由于ECC的本质的原因)并且然后可以采取适当的措施。
例如,一些系统对敏感或秘密信息(诸如加密或加扰的内容或加密密钥)进行操作或者利用敏感或秘密信息进行操作。在这样的系统中,对于攻击者已知的是执行所谓的“故障注入攻击”,其中攻击者故意修改要处理的输入数据的一个或多个位或部分,以便确定或观测该修改对于输出的经处理数据的影响,旨在使用这样的观测结果来推断一些敏感信息或所有敏感信息。本发明的实施例使得数据能够被处理并且保持在使得这样的修改能够被纠正的域(ECC编码域)内,这样的纠正因此抵消攻击者做出的修改,使得攻击者的攻击没有价值或者至少使攻击者更难以推断敏感信息。由于图1B中所示的实施例没有披露原始数据D,该原始数据D处于非ECC编码域内并且仅操作于ECC编码域内,所以攻击者难以执行故障注入攻击。相比之下,图1C的方法将为攻击者提供对原始数据D的访问,并且攻击者将能够操纵或修改原始数据D以便执行其故障注入攻击。即使使用了系统编码(其中明确地原始数据D是图1B中的编码版本E(D)的一部分),希望修改E(D)内的原始数据D的攻击者也将需要知道如何(基于经修改的数据D)修改E(D)内的其余部分,以便能够在攻击不被检测到的情况下执行成功的故障注入攻击,如果正使用的ECC不可用或者不为攻击者所知的话,这是攻击者可能无法做到的事情。
应当注意的是,如果将两个函数F1和F2实现为相应的变换版本F1 T和F2 T,那么
使得可以将函数F1 T和F2 T连结为以便实现而不必消除/解码ECC并且然后在F1 T和F2 T之间重新应用ECC。当然,相似地,这适用于对多于两个函数的连结。
附加的优点是本发明的实施例可以增加对于要由函数F处理的数据D的发送方(始发方)可用的“多样性”。特别地,如果数据要由第一实体(例如客户端或一项软件内的第一函数)处理,那么第二实体(例如服务器或该项软件内的第二函数)可能向第一实体发送原始数据D的ECC编码版本(即E(D))连同添加到ECC编码数据的一定量噪声。换言之,第二实体可以向ECC编码数据应用修改从而产生经修改的ECC编码数据。由于第二实体可以向ECC编码数据添加大量不同的噪声模式而不阻止ECC解码能够还原经正确处理的数据,所以第二实体可以以安全方式以更大量的方式向第一实体发送同一原始数据D,即通过发送具有大量添加的可用噪声模式或做出的修改之一的ECC编码原始数据(其中该噪声模式仅仅导致可通过ECC解码纠正从而生成正确值F(D)的经处理的数据(即FT的输出FT(E-1(D)))中的错误)。窃听者/攻击者将不会知道是否已经添加了噪声,更不用说可能实际上是什么样的噪声模式,从而使窃听者/攻击者更难以访问原始数据。而且,如果第二实体希望向第一实体多次发送原始数据D,那么第二实体可以每次向E(D)添加不同的噪声或错误。这将使任何潜在的攻击者困惑,因为经修改的数据(即被传送的数据)每次都改变,即使原始的底层数据D保持相同。每次添加的噪声可以是完全随机的或者由输入数据或与应用相关的任何其他依赖关系所驱动。
在软件保护的背景中,这样的多样性引入了真正重要的新的能力。如所提到的,引入多样性的当前方法牵涉重写软件以使得对数据和/或操作进行变换,并且通过对于不同的软件实例使用不同的变换来在软件内部引入多样性。然而,一旦软件实例被创建和分发,其多样性就不能随后被改变。发布软件的新版本牵涉使用新的变换来生成该新版本,这引入了延迟、各种开销以及其他不便。然而,利用本发明的实施例,可以独立于软件来添加错误添加(作为多样性)。按照应用的要求,错误可以或可以不依赖于输入数据。而且,可以使诸如生成器多项式之类的设计参数依赖于输入数据(假设施行ECC编码的实体和施行ECC解码的实体被布置成确定和使用相同的设计参数,诸如生成器多项式)。
根据图1B中所示的处理进行操作的本发明的实施例因此提供了相对于图1A和1C中所示的处理工作流程的优点。
在本发明的实施例中,可以使用ECC来检测在所接收的一定量的编码数据E(D)中是否存在错误或者在输出FT(E(D))中是否存在错误。如果检测到错误,那么可以采取适当的行动,其可以包括以下各项中的一个或多个:停止进一步的处理操作;将输出设置成与所接收的一定量的编码数据基本上无关(诸如通过将输出设置成随机值);或者视情况对错误数据E(D)或FT(E(D)施行ECC的错误纠正解码操作从而纠正所检测到的错误。
图1B中所示的函数FT可以由一个或多个计算机系统200执行,和/或可以被实现为在一个或多个计算机系统200上执行的软件组件或计算机程序/模块。图2示意性地图示了计算机系统200的示例。系统200包括计算机202。计算机202包括:存储介质204、存储器206、处理器208、接口210、用户输出接口212、用户输入接口214以及网络接口216,他们通过一个或多个通信总线218全部链接在一起。
存储介质204可以是任何形式的非易失性数据存储设备,诸如硬盘驱动器、磁盘、光盘、ROM等等中的一个或多个。存储介质204可以存储为了使计算机202起作用而供处理器208执行的操作系统。存储介质204还可以存储一个或多个计算机程序(或软件或指令或代码)。
存储器206可以是适合于存储数据和/或计算机程序(或软件或指令或代码)的任何随机存取存储器(存储单元或易失性存储介质)。
处理器208可以是适合于执行一个或多个计算机程序(诸如存储在存储介质204上和/或存储器206中的那些计算机程序)的任何数据处理单元,计算机程序中的一些可以是根据本发明的实施例的计算机程序或如下这样的计算机程序:该计算机程序当由处理器208执行时使得处理器208执行根据本发明的实施例的方法并将系统200配置成根据本发明的一个实施例的系统。处理器208可以包括单个数据处理单元或并行操作或相互协作操作的多个数据处理单元。处理器208在执行用于本发明的实施例的数据处理操作时可以将数据存储到存储介质204和/或存储器206,和/或从存储介质204和/或存储器206读取数据。
接口210可以是用于向计算机202外部的或可从计算机202移除的设备222提供接口的任何单元。设备222可以是数据存储设备,例如光盘、磁盘、固态存储设备等等中的一个或多个。设备222可以具有处理能力,例如,设备可以是智能卡。接口210因此可以根据其从处理器208接收的一个或多个指令从设备222访问数据,或者向设备222提供数据,或者与设备222对接。
用户输入接口214被布置成从系统200的用户或操作者接收输入。用户可以经由系统200的连接到用户输入接口214或与用户输入接口214进行通信的诸如鼠标(或其他指示设备)226和/或键盘224之类的一个或多个输入设备来提供该输入。然而,将意识到的是,用户可以经由一个或多个附加或替换的输入设备(诸如触摸屏)来向计算机202提供输入。计算机202可以将经由用户输入接口214从输入设备接收的输入存储在存储器206中以供处理器208随后访问和处理,或者可以将其直接传递到处理器208,使得处理器208可以相应地响应用户输入。
用户输出接口212被布置成向系统200的用户或操作者提供图形/视觉和/或音频输出。照此,处理器208可以被布置成指令用户输出接口212形成表示期望的图形输出的图像/视频信号,并且将该信号提供给系统200的连接到用户输出接口212的监视器(或屏幕或显示单元)220。附加地或替换地,处理器208可以被布置成指令用户输出接口212形成表示期望的音频输出的音频信号,并且将该信号提供给系统200的连接到用户输出接口212的一个或多个扬声器221。
最后,网络接口216为计算机202提供从一个或多个数据通信网络下载数据和/或将数据上传到一个或多个数据通信网络的功能。
将意识到的是,图2中所图示且上文描述的系统200的架构仅仅是示例性的,并且在本发明的实施例中可以使用具有不同架构的其他计算机系统200(例如具有比图2中所示更少的组件或者与图2中所示的相比具有附加的和/或替换的组件)。作为示例,计算机系统200可以包括以下各项中的一个或多个:个人计算机、服务器计算机、移动电话、平板电脑、膝上型电脑、电视机、机顶盒、游戏控制台、个人计算机、服务器计算机、其他移动设备或消费电子设备、智能卡,等等。
(2)定义
在讨论如何可以根据预定函数F确定函数FT之前,在下面提出多个定义。
●生成器多项式:
(使得g0=1)
注意如果正使用的ECC是里德-所罗门码,那么t是偶数(如前所述)。
●消息:
●对应于m(X)的码字:
●当使用系统编码时对应于m(X)的奇偶校验多项式,即在将除以g(X)之后的余数:
●第i个消息(当考虑多个消息时):
●对应于mi(X)的码字:
●当使用系统编码时对应于mi(X)的奇偶校验多项式,即在将除以g(X)之后的余数:
●对消息m(X)进行右移:
●对消息m(X)进行循环右移:
●对消息m(X)进行左移:
●对消息m(X)进行循环左移:
在下文中,和表示以与前面描述的对消息m类似的方式对码字c的相似移位操作,对于对应的消息来说他们自身不一定是码字。
(3)给定特定的预定函数F的情况下FT的示例
在下面的子章节中,提供了针对给定函数F的函数FT的多个示例。如果在错误被添加到该函数FT的输入的情况下使用这些函数FT(例如出于如前所述的多样性的目的),那么应当控制添加到输入的错误,使得在函数FT的输出中产生的一定量的错误是可纠正的,即使得对函数FT的输出的ECC解码成功地消除函数FT的输出中的噪声/错误。
(3.1)使用非系统编码的右移变换
假设函数F是消息m(X)的右移变换,使得。此外,假设使用非系统编码来应用ECC。
假定对初始消息m(X)的非系统编码导致码字c(X)。问题在于,在不必执行对c(X)的惯常解码的情况下能够计算由对进行非系统编码而将产生的码字c'(X)吗?
(因为)
因此,有可能根据c(X)和g(X)直接计算c'(X),即不必执行对c(X)的惯常解码来生成m(X),对m(X)进行操作来生成F(m(X)),以及然后对F(m(X))进行ECC编码来生成c'(X)。此外,以这种方式,未披露关于m(X)的信息。在该示例中,如前所述。
(3.2)使用非系统编码的循环右移变换
假设函数F是消息m(X)的循环右移变换,使得。此外,假设使用非系统编码来应用ECC。
假定对初始消息m(X)的非系统编码导致码字c(X)。问题在于,在不必执行对c(X)的惯常解码的情况下能够计算由对进行非系统编码而将产生的码字c'(X)吗?
(因为)
因此,有可能根据c(X)和g(X)直接计算c'(X),即不必执行对c(X)的惯常解码来生成m(X),对m(X)进行操作来生成F(m(X)),以及然后对F(m(X))进行ECC编码来生成c'(X)。此外,以这种方式,未披露关于m(X)的信息。在该示例中,如前所述。
(3.3)使用非系统编码的左移变换
假设函数F是消息m(X)的左移变换,使得。此外,假设使用非系统编码来应用ECC。
假定对初始消息m(X)的非系统编码导致码字c(X)。问题在于,在不必执行对c(X)的惯常解码的情况下能够计算由对进行非系统编码而将产生的码字c'(X)吗?
(因为)
因此,有可能根据c(X)和g(X)直接计算c'(X),即不必执行对c(X)的惯常解码来生成m(X),对m(X)进行操作来生成F(m(X)),以及然后对F(m(X))进行ECC编码来生成c'(X)。此外,以这种方式,未披露关于m(X)的信息。在该示例中,如前所述。
(3.4)使用非系统编码的循环左移变换
假设函数F是消息m(X)的循环左移变换,使得。此外,假设使用非系统编码来应用ECC。
假定对初始消息m(X)的非系统编码导致码字c(X)。问题在于,在不必执行对c(X)的惯常解码的情况下能够计算由对进行非系统编码而将产生的码字c'(X)吗?
(因为)
此外,由于,所以我们还可以将c'(X)表示为
因此,有可能根据c(X)和g(X)直接计算c'(X),即不必执行对c(X)的惯常解码来生成m(X),对m(X)进行操作来生成F(m(X)),以及然后对F(m(X))进行ECC编码来生成c'(X)。此外,以这种方式,未披露关于m(X)的信息。在该示例中,如前所述(使用前面给出的针对c'(X)的任一表达式)。
(3.5)使用非系统编码的点积变换
假设函数F是两个消息m1(X)和m2(X)的点积,使得,对于0≤i≤k-1,m1,i与m2,i的相乘是GF(q)的两个元素在GF(q)中的相乘。此外,假设使用非系统编码来应用ECC。
假定对两个初始消息m1(X)和m2(X)的非系统编码导致相应的码字c1(X)和c2(X)。令m1(X)和m2(X)的点积为m(X),其中
使得对于0≤i≤k-1,mi:=m1,im2,i。
问题在于,在不必执行对c1(X)和c2(X)的惯常解码的情况下能够计算由对m(X)进行非系统编码而将产生的码字c(X)吗?下文阐述针对这个的三种方法。
方法1:
我们注意到,对于c(X),我们有方程组(1):
这导致方程组(2),
对于0≤i≤k-1,,其中:
使得一般地,对于i>0,。
使得一般地,对于i>1,。
使得,一般地,对于i>4,可以通过以下方式根据wi-1形成wi:
(a)取wi-1,并且,对于在wi-1的表达式中出现的每个cj,使该cj的下标增加1(即使得cj被cj+1替换),以及
(b)通过根据以下规则使用元素ga的任意乘法组合来确定连同co一起使用的系数:
(i)允许最多两个元素和;
(ii)d1和d2两者都不能既为奇数又大于1;
(iii)
(iv)乘法组合不是在或中已经遇到的co的系数
(v)不允许使d1和d2两个都等于1。
以类似的方式,我们可以使用方程组(2)来确定对于0≤i≤k-1,并且,即对于0≤i≤k-1,人们可以将m1,i表示为c1,j'和gj'的函数,并且类似地,对于0≤i≤k-1,人们可以将m2,i表示为c2,j'和gj'的函数。
由于mi=m1,im2,i,对于0≤i≤k-1,人们可以使用以上方程来将mi表示为c1,j'、c2,j'和gj'的函数,即:
然后可以将针对mi的这些表达式合并到方程组(1)中来对于0≤i≤k-1,将ci表示为c1,j'、c2,j'和gj'的函数。因此,有可能根据c1(X)、c2(X)和g(X)直接计算c(X),即即不必执行对c1(X)和c2(X)的惯常解码来生成m1(X)和m2(X),对m1(X)和m2(X)进行操作来生成F(m1(X),m2(X)),以及然后对F(m1(X),m2(X))进行ECC编码来生成c(X)。此外,以这种方式,未披露关于m1(X)和m2(X)的信息。在该示例中,如前所述。
方法2:
可以将c1(X)和c2(X)的不同元素/系数相乘在一起,并且然后将其进行组合,以便计算c(X)的元素/系数。这基于以下内容:
令并且定义。
那么。
令并且定义
令并且定义
令并且定义
那么
令并且定义
令并且定义
令并且定义
令并且定义
令并且定义
那么
可以以这种方式继续该处理,以用于对于确定ci。因此,如前所示,可以作为gj'和几对c1,j'、c2,j'的积的预定关系/函数计算每个ci(对于0≤i≤n-1)。因此,有可能根据c1(X)、c2(X)和g(X)直接计算c(X),即即不必执行对c1(X)和c2(X)的惯常解码来生成m1(X)和m2(X),对m1(X)和m2(X)进行操作来生成F(m1(X),m2(X)),以及然后对F(m1(X),m2(X))进行ECC编码来生成c(X)。此外,以这种方式,未披露关于m1(X)和m2(X)的信息。在该示例中,如前所述。
方法3:
在该方法中,我们利用的事实。令。于是,是码字,因为是由对进行编码而产生的码字并且两个码字之和是码字(由于错误纠正码是线性的)。而且,并且。然后,可以重复这样。特别地,令。这同样是码字,因为是由对进行编码而产生的码字并且两个码字之和是码字。而且,并且。一般地,如果人们定义并且对于,迭代地定义,那么对于,,并且对于,。
图3示意性地图示了用于实现点积操作的布置300。标记为c1,i、c2,i和ci的每个实线框是移位寄存器(在图3中向左移位);包含生成器多项式g(X)的元素gi的每个实线框是存储相应元素gi的寄存器;每个符号是GF(q)加法器;以及每个符号是GF(q)乘法器。系统300基于单时钟进行操作,随着时钟的每个时钟周期/迭代,每个移位寄存器输出其当前内容并且将接收的值存储在其输入处。系统300如下进行初始化:
●利用码字c1(X)的相应元素c1,0、c1,1、……、c1,n-1初始化标记为c1,0、c1,1、……、c1,n-1的寄存器,从而提供c1(X)的多项式表示,即。
●利用码字c2(X)的相应元素初始化标记为的寄存器,从而提供c2(X)的多项式表示,即。
●利用0初始化标记为的寄存器。
施行k次迭代,在其结束处期望的输出为。在第i次迭代(时钟周期)处,对于1≤i≤k:
●框302输出消息元素m1,i。
●框304输出消息元素m2,i。
●框302中的反馈回路反馈m1,i,其然后乘以生成器多项式g(X)并且然后与当前存储在标记为的寄存器中的码字相加,从而如前所述的那样抵消m1,i的影响并且存储对应于码字c1(X)的下一个码字。
●框304中的反馈回路反馈m2,i,其然后乘以生成器多项式g(X)并且然后与当前存储在标记为的寄存器中的码字相加,从而如前所述的那样抵消m2,i的影响并且存储对应于码字c2(X)的下一个码字。
●因此作为期望的点积的一部分,乘法器306施行m1,i和m2,i的异或。
●乘法器306的输出在框308中乘以生成器多项式g(X),其然后与当前存储在标记为的寄存器中的码字相加。
虽然已经将上文描述为使用线性反馈移位寄存器实现,但是将意识到的是,替代地可以使用诸如基于软件的实现方式之类的其他实现方式。
因此,有可能根据c1(X)、c2(X)和g(X)直接计算c(X),即即不必执行对c1(X)和c2(X)的惯常解码来生成m1(X)和m2(X),对m1(X)和m2(X)进行操作来生成F(m1(X),m2(X)),以及然后对F(m1(X),m2(X))进行ECC编码来生成c(X)。此外,以这种方式,未披露关于m1(X)和m2(X)的信息。此处,。
(3.6)使用非系统编码的更一般的操作变换
假定对两个初始消息m1(X)和m2(X)的非系统ECC编码导致相应的码字c1(X)和c2(X)。对于0≤i≤k-1,令fi为对消息m1(X)和m2(X)的第i个元素进行操作(即对m1,i和m2,i进行操作)的操作,并且令F为对消息m1(X)和m2(X)进行的、导致应用的操作,使得
问题在于,在不必执行对c1(X)和c2(X)的惯常解码的情况下能够计算由对m(X)进行非系统编码而将产生的码字c(X)吗?
对此的一个解决方案是使用与针对前面在第3.5节中讨论的用于计算点积的第三个方法所阐述的那样类似的方法。实际上,点积是一个示例,其中对于0≤i≤k-1,。图4因此示意性地图示了用于实现更为一般的操作F的布置400。布置400与布置300相同(并且对布置300的描述因此相似地适用于布置400),除了布置300的乘法器306在布置400中由算子模块402替换,该算子模块402被布置成对第i次迭代应用函数fi-1。
例如在针对消息m1(X)和m2(X)分别给定c1(X)和c2(X)的情况下,当人们希望确定由对m1(X)和m2(X)进行按位操作(诸如与、或、异或、与非,等等)而将产生的码字时,可以使用图4的系统400。在这样的情形中,是对m1,i和m2,i的二进制表示的按位操作。类似地,例如在针对消息m1(X)和m2(X)分别给定c1(X)和c2(X)的情况下,当人们希望确定由对m1(X)和m2(X)的元素进行算术操作(诸如对域大小q进行模加(additional modulo)或者对域大小q进行模乘(multiplication modulo))而将产生的码字时,可以使用图4的系统400。在这样的情形中,或者 (其中这些加法和乘法是对q进行整数模加和模乘,而非GF(q)中的加法或乘法)。显然,函数fi和得到的函数F的其他示例以及这样的函数fi的组合是可能的。
因此,有可能根据c1(X)、c2(X)和g(X)直接计算c(X),即不必执行对c1(X)和c2(X)的惯常解码来生成m1(X)和m2(X),对m1(X)和m2(X)进行操作来生成F(m1(X),m2(X)),以及然后对F(m1(X),m2(X))进行ECC编码来生成c(X)。于是。
(3.7)使用系统编码的右移变换
假设函数F是消息m(X)的右移变换,使得。此外,假设使用系统编码来应用ECC。
假定对初始消息m(X)的系统编码导致码字c(X)。问题在于,在不必执行对c(X)的惯常解码的情况下能够计算由对进行系统编码而将产生的码字c'(X)吗?
回想,其中r(X)是将除以生成器多项式g(X)之后的余数,即
对于某个多项式p(X),
并且,其中r'(X)是将除以生成器多项式g(X)之后的余数,即对于某个多项式p'(X),。
因此,我们需要计算将除以g(X)之后的余数。注意到,。g(X)的最高次是t。因此,将mk-1Xt-1除以g(X)之后的余数是mk-1Xt-1自身。此外,注意,。因此,将除以g(X)的余数是,其中pk-1是p(X)中的X0的系数。因为正在使用系统编码,所以我们有,并且还有,使得。因此,。
因此,(注意到m(X)被直接表示在c(X)中,并且因此也可根据c(X)直接获得)。
因此,有可能根据c(X)和g(X)直接计算c'(X),即不必执行对c(X)的惯常解码来生成m(X),对m(X)进行操作来生成F(m(X)),以及然后对F(m(X))进行ECC编码来生成c'(X)。在该示例中,如前所述。
(3.8)使用系统编码的左移变换
假设函数F是消息m(X)的左移变换,使得。此外,假设使用系统编码来应用ECC。
假定对初始消息m(X)的系统编码导致码字c(X)。问题在于,在不必执行对c(X)的惯常解码的情况下能够计算由对进行系统编码而将产生的码字c'(X)吗?
回想,其中r(X)是将除以生成器多项式g(X)之后的余数,即
对于某个多项式p(X),
,其中r'(X)是将除以生成器多项式g(X)之后的余数,
即对于某个多项式p'(X),。
因此,我们需要计算将除以g(X)之后的余数。有两种情形要考虑:
情形1:在m(X)中。
在该情形中,。因此:
。
因此,将除以g(X)之后的余数将是将除以g(X)之后的余数。由于中的最高幂是t,所以余数仅为:。
情形2:在m(X)中。
在该情形中,。因此:
对于循环ECC,g(X)是的因数。于是,使用如下事实:。
因此,(其中r'(X)如前所述,并且我们注意到m(X)被直接表示在c(X)中,使得也可根据c(X)直接获得)。
因此,有可能根据c(X)和g(X)直接计算c'(X),即不必执行对c(X)的惯常解码来生成m(X),对m(X)进行操作来生成F(m(X)),以及然后对F(m(X))进行ECC编码来生成c'(X)。在该示例中,如前所述。
(3.9)使用系统编码的循环右移变换
假设函数F是消息m(X)的循环右移变换,使得。此外,假设使用系统编码来应用ECC。
假定对初始消息m(X)的系统编码导致码字c(X)。问题在于,在不必执行对c(X)的惯常解码的情况下能够计算由对进行系统编码而将产生的码字c'(X)吗?
回想,其中r(X)是将除以生成器多项式g(X)之后的余数,即
对于某个多项式p(X),
并且,其中r'(X)是将除以生成器多项式g(X)之后的余数,即对于某个多项式p'(X),。
因此,我们需要计算将除以g(X)之后的余数。注意到,。因此,将除以g(X)之后的余数是以下各项之和:
(a)将除以g(X)之后的余数,这在上文第3.7节中已经讨论过了。
(b)将除以g(X)之后的余数。注意到,将除以g(X)之后的余数仅仅是。由于通过对应用k-1个左移得到,所以将除以g(X)之后的余数是由对具有作为消息并且具有作为奇偶校验的码字应用k-1个左移而产生的码字的奇偶校验,这可以通过应用k-1次上文的左移算法(在第3.8中讨论的)来计算。
因此,(其中r'(X)如前所述,并且我们注意到m(X)被直接表示在c(X)中,使得也可根据c(X)直接获得)。
因此,有可能根据c(X)和g(X)直接计算c'(X),即不必执行对c(X)的惯常解码来生成m(X),对m(X)进行操作来生成F(m(X)),以及然后对F(m(X))进行ECC编码来生成c'(X)。在该示例中,如前所述。
(3.10)使用系统编码的循环左移变换
假设函数F是消息m(X)的循环左移变换,使得。此外,假设使用系统编码来应用ECC。
假定对初始消息m(X)的系统编码导致码字c(X)。问题在于,在不必执行对c(X)的惯常解码的情况下能够计算由对进行系统编码而将产生的码字c(X)吗?
回想,其中r(X)是将除以生成器多项式g(X)之后的余数,即
对于某个多项式p(X),
,其中r'(X)是将除以生成器多项式g(X)之后的余数,即对于某个多项式p'(X),。
因此,我们需要计算将除以g(X)之后的余数。
对于循环ECC,g(X)是的因数。于是,使用的事实,将除以g(X)之后的余数为
。
注意到,该公式可以通过省略项来进行简化,因为这将影响不相关的第(t+1)个元素。因此,人们可以写为。当考虑针对r'(X)的其他公式时,同样的处理相类似地适用。
因此,(其中r'(X)如前所述,并且我们注意到m(X)被直接表示在c(X)中,使得也可根据c(X)直接获得)。
因此,有可能根据c(X)和g(X)直接计算c'(X),即不必执行对c(X)的惯常解码来生成m(X),对m(X)进行操作来生成F(m(X)),以及然后对F(m(X))进行ECC编码来生成c'(X)。在该示例中,如前所述。
(3.11)使用系统编码的点积变换
假设函数F是两个消息m1(X)和m2(X)的点积,使得,对于0≤i≤k-1,m1,i与m2,i的相乘是GF(q)的两个元素在GF(q)中的相乘。此外,假设使用系统编码来应用ECC。
假定对两个初始消息m1(X)和m2(X)的系统编码导致相应的码字c1(X)和c2(X)。令m1(X)和m2(X)的点积为m(X),其中
使得对于0≤i≤k-1,mi:=m1,im2,i。
问题在于,在不必执行对c1(X)和c2(X)的惯常解码的情况下能够计算由对m(X)进行系统编码而将产生的码字c(X)吗?
由于正在使用系统编码,所以可以根据码字c1(X)和c2(X)直接计算值mi,特别地,码字c1(X)和c2(X)中的系数将分别为m1,i和m2,i,使得可以将mi=m1,im2,i直接计算为这些系数的相乘。
如果我们定义:
那么。
对于消息,奇偶校验多项式是多项式,此处,忽略次数大于或等于n-k的的项,因为奇偶校验多项式次数最多为n-k-1。因此,对应于消息的码字被确定。
对于i>0,用于消息的奇偶校验多项式等于以下各项之和:
(a)用于消息的奇偶校验多项式。这是用于消息的左移的奇偶校验多项式,其可以基于针对消息确定的码字使用在前面的第3.8节(情形1中)阐述的处理来确定。
(b)用于消息m1,im2,i的奇偶校验多项式。这是多项式。
对于这个求和,忽略(或丢弃)次数大于或等于n-k的求和项,因为奇偶校验多项式的次数最多为n-k-1。因此,对应于消息的码字被确定。
因此,可以迭代地确定针对的码字。由于,可以以这种方式确定针对消息m(X)的码字c(X)。
因此,由于可以根据m1(X)和m2(X)直接计算m(X),并且由于可以使用前面的过程计算r(X),所以有可能根据c1(X)、c2(X)和g(X)直接计算c(X),即不必执行对c1(X)和c2(X)的惯常解码来生成m1(X)和m2(X),对m1(X)和m2(X)进行操作来生成F(m1(X),m2(X)),以及然后对F(m1(X),m2(X))进行ECC编码来生成c(X)。在该示例中,如前所述。
(3.12)使用系统编码的更一般的操作变换
假定对两个初始消息m1(X)和m2(X)的系统ECC编码导致相应的码字c1(X)和c2(X)。对于0≤i≤k-1,令fi为对消息m1(X)和m2(X)的第i个元素进行操作(即对m1,i和m2,i进行操作)的操作,并且令F为对消息m1(X)和m2(X)进行的、导致应用的操作,使得
问题在于,在不必执行对c1(X)和c2(X)的惯常解码的情况下能够计算由对m(X)进行非系统编码而将产生的码字c(X)吗?
由于正在使用系统编码,所以可以根据码字c1(X)和c2(X)直接计算值,特别地,码字c1(X)和c2(X)中的系数将分别为m1,i和m2,i,使得可以将作为这些系数的函数(fi)直接计算。
如果我们定义:
那么。
对于消息,奇偶校验多项式是多项式,此处,忽略次数大于或等于n-k的的项,因为奇偶校验多项式次数最多为n-k-1。因此,对应于消息的码字被确定。
对于i>0,用于消息的奇偶校验多项式等于以下各项之和:
(a)用于消息的奇偶校验多项式。这是用于消息的左移的奇偶校验多项式,其可以基于针对消息确定的码字使用在前面的第3.8节(情形1中)阐述的处理来确定。
(b)用于消息的奇偶校验多项式。这是多项式。
对于这个求和,忽略(或丢弃)次数大于或等于n-k的求和项,因为奇偶校验多项式的次数最多为n-k-1。因此,对应于消息的码字被确定。
因此,可以迭代地确定针对的码字。由于,可以以这种方式确定针对消息m(X)的码字c(X)。
因此,由于可以根据m1(X)和m2(X)直接计算m(X),并且由于可以使用前面的过程计算r(X),所以有可能根据c1(X)、c2(X)和g(X)直接计算c(X),即不必执行对c1(X)和c2(X)的惯常解码来生成m1(X)和m2(X),对m1(X)和m2(X)进行操作来生成F(m1(X),m2(X)),以及然后对F(m1(X),m2(X))进行ECC编码来生成c(X)。在该示例中,如前所述。
(4)免g(X)的函数
如果可以以不需要知道ECC的生成器多项式g(X)的方式实现对应的函数FT,则函数F将被称作是免g(X)的。在不知道或不披露生成器多项式g(X)的情况下实现函数FT的实施例可能比利用g(X)用于实现FT的实施例更为安全,因为攻击者不知道ECC的设定,并且因此不知道图1B中E(D)如何与初始数据D相关,或者如何与F(D)相关。
下面给出免g(X)函数的示例。
(4.1)使用非系统编码的循环右移
假设函数FT的输入是对应于原始消息m(X)的码字。
假设函数FT通过对c(X)施行循环右移来对输入码字c(X)进行操作,使得。FT的实现显然不需要知道g(X),因为可以在不知道(即独立于)生成器多项式g(X)的情况下根据c(X)计算。
如果ECC是循环的,那么生成器多项式g(X)是的因数,使得对于某个多项式q(X),。因此,对于循环ECC,我们有
因此,码字对应于消息。因此,如果函数F被布置成将初始消息m(X)映射到消息,那么对应的函数FT将码字c(X)映射到码字。在这种情况下,函数F是免g(X)的。
(4.2)使用非系统编码的循环左移
假设函数FT的输入是对应于原始消息m(X)的码字。
假设函数FT通过对c(X)施行循环左移来对输入码字c(X)进行操作,使得。FT的实现显然不需要知道g(X),因为可以在不知道(即独立于)生成器多项式g(X)的情况下根据c(X)计算。
如果ECC是循环的,那么生成器多项式g(X)是的因数,使得对于某个多项式q(X),。因此,对于循环ECC,我们有
因此,码字对应于消息。因此,如果函数F被布置成将初始消息m(X)映射到消息,那么对应的函数FT将码字c(X)映射到码字。在这种情况下,函数F是免g(X)的。
(4.3)图灵完备性
如前所讨论的,存在不需要生成器多项式g(X)的知识来实现对应的变换操作FT的操作F。于是,问题在于,是否有可能将任意的函数F实现为变换函数FT?其中在不披露针对ECC的生成器多项式g(X)(或没有ECC的生成器多项式g(X)的知识)的情况下实现函数FT。
异或操作显然是免g(X)的。特别地,给定对应于初始消息m1(X)和m2(X)的两个码字c1(X)和c2(X),其中对于i=1,2,,异或函数FT定义为
其中是对c1,j和c2,j的按位异或。由于在二进制系统中,我们有该,其显然是免g(X)的。由于ECC是线性的,是对应于消息的码字,其是m1(X)和m2(X)的异或。因此,该变换函数FT对应于函数。
如下面所阐述的,该异或操作连同关于常数的条件分支形成图灵完备的系统。这意味着可以仅使用(a)零个或更多异或操作以及(b)零个或更多关于常数的条件分支来实现任何数学函数。这意味着所有的函数F都是免g(X)的,因为可以仅使用(a)零个或更多异或操作(其是免g(X)的)以及(b)零个或更多关于常数的条件分支(其不牵涉g(X))来实现任何函数F,使得于是可以在不知道或不依赖于生成器多项式g(X)的情况下实现对应的变换函数FT。
图灵机是根据规则表操纵磁带条上的符号的概念设备。尽管其简单,但是图灵机可以被适配成模拟任何计算机算法的逻辑。图灵机对机械地操作磁带的机器进行数学建模。在该磁带上是该机器使用磁带头部可以一次一个地读和写的符号。操作完全由元指令的有限集合进行确定,所述元指令诸如“在状态42中,如果所见符号是0,则写1;如果所见符号是1,则改变到状态17;在状态17中,如果所见符号是0,则写1并改变到状态6”,等等。更精确地,图灵机包括:
1、被划分成一个接一个的单元的磁带。每个单元包含来自某个有限字母表的符号。该字母表包含专门的空白符号(此处写为‘B’)以及一个或多个其他符号。假定磁带可向左和向右任意延伸,即总是向图灵机供应他针对其计算所需的那样多的磁带。假定之前还未被写入的单元填充有空白符号。
2、可以在磁带上读和写符号并将磁带向左和向右一次移动一个(且仅一个)单元的头部。
3、存储图灵机的有限多个状态之一的当前状态的状态寄存器。存在一个专门的开始状态,利用该状态初始化状态寄存器。
4、一个或多个指令(通常每个都被表示为相应的五元组(quintuple))的有限表(有时被称为行动表或转变函数),该有限表指定:如果图灵机当前处于状态qi并且当前已经从磁带读取符号aj(即,当前头部下的符号是aj),那么图灵机应当执行以下操作序列:
●写入符号aj1取代当前符号aj。
●如dk所描述的,控制头部位置。dk可以具有如下值:指示把头部向左移动一个单元的‘L’,指示把头部向右移动一个单元的‘R’;或者指示不移动头部(即停留在同一地点)的‘N’。
●将当前状态设置成由qi1指定的状态(其可以与qi相同或者不同)。
图灵机是非常众所周知的,并且因此本文将不进行更详细描述。
如果可以表明可以使用异或操作和条件分支来实现行动表中的任何可能的5元组,那么我们知道基于该异或操作和条件分支的系统是图灵完备的,并且因此(在给定上文所述内容的情况下)任何函数F是免g(X)的。
考虑图灵机中的元素与我们所提出的系统中的那些元素之间的以下映射:
●图灵机的字母表大小是字母表GF(q)(即针对ECC的字母表)的大小q。
●每个状态被实现为具有标识符(用来跳转)的代码块。因此,取决于当前状态和存储器内容,可以通过Go To语句来实现图灵机中的下一状态。
●磁带可以被实现为保持字母表中的元素的二进制表示的存储器。因此可以通过改变指向存储器的地址来实现磁带的运动。
●被称为“地址”的全局变量用来指向等同于头部下的磁带片段的存储器位置。
●我们使用存储器内容的地址来读取存储器内容。为了写入存储器,我们将存储器内容与产生期望值的常数进行异或。
以下伪代码示出了典型的状态实现方式(对于具有标识符“i”的状态),其中值是常数并且“Addr”是到存储器位置的指针。下面所示的示例说明增加、减小和不改变地址“Addr”变量的三种可能性。
因此,可以使用异或操作和条件分支来实现行动表中任何可能的5元组。因此,基于异或操作和条件分支的系统是图灵完备的,并且因此(在给定上文所述的内容的情况下),任何函数F是免g(X)的。
(5)准备和提供FT
图5示意性地图示了根据本发明的一个实施例的系统。
提供方500被布置成采取初始算法(或操作或函数或处理)F并且使用生成程序502以如前所述的方式生成初始算法F的对应的变换版本FT。生成程序502可以利用一个或多个参数504来形成版本FT。这些参数504可以例如是定义要施行的ECC(诸如定义生成器多项式)的参数。提供方500将版本FT提供给客户端510,使得客户端510可以执行、使用或实现版本FT。可以将版本FT作为软件和/或硬件提供给客户端510。
(6)修改
已经关于特定方程组描述了前面阐述的函数。然而,替代地可以使用这些方程的其他表达来生成相同的结果。可以优化这些方程或其实现方式,例如当使用具有特定架构的目标设备来实现本发明的一个实施例时,可以针对该设备或架构来优化所使用的方程。因此将意识到的是,本发明的实施例不限于前面所述的方程,而是可以基于其他等同的方程组。
将意识到的是,已经将所描述的方法示出为以特定顺序执行的各个步骤。然而,技术人员将意识到,可以将这些步骤进行组合或者以不同的顺序来执行同时仍然实现期望的结果。
将意识到的是,可以使用各种不同的信息处理系统来实现本发明的实施例。特别地,尽管附图和其讨论提供了示例性的计算系统和方法,但是这些被提出仅仅用以在讨论本发明的各种方面时提供有用的参考。可以在诸如个人计算机、膝上型电脑、个人数字助理、移动电话、机顶盒、电视、服务器计算机等等之类的任何合适的数据处理设备上执行本发明的实施例。当然,已经出于讨论的目的简化了对系统和方法的描述,并且他们只是可以用于本发明的实施例的许多不同类型的系统和方法中的一种。将意识到的是,逻辑块之间的边界仅仅是说明性的,并且替换的实施例可以合并逻辑块或元素,或者可以向各种逻辑块或元素施以替换的功能分解。
将意识到的是,可以将前面提到的功能实现为作为硬件和/或软件的一个或多个对应模块。例如,可以将前面提到的功能实现为供系统的处理器执行的一个或多个软件组件。替换地,可以将前面提到的功能实现为硬件,诸如一个或多个现场可编程门阵列(FPGA)、和/或一个或多个专用集成电路(ASIC)、和/或一个或多个数字信号处理器(DSP)、和/或其他硬件布置。在本文中包含的流程图中实现的或者如前面所描述的方法步骤可以每个都由对应的相应模块来实现;在本文中包含的流程图中实现的或者如前面所描述的多个方法步骤可以一起由单个模块来实现。
将意识到的是,在本发明的实施例由计算机程序实现的情况下,则承载计算机程序的存储介质和传输介质形成本发明的各方面。计算机程序可以具有一个或多个程序指令或程序代码,所述一个或多个程序指令或程序代码当由计算机执行时执行本发明的一个实施例。如本文所使用的,术语“程序”可以是设计用于在计算机系统上执行的指令序列,并且可以包括子例程、函数、过程、模块、对象方法、对象实现、可执行应用、小程序、小服务程序(servlet)、源代码、对象代码、共享库、动态链接库和/或被设计用于在计算机系统上执行的其他指令序列。存储介质可以是磁盘(诸如硬盘驱动器或软盘)、光盘(诸如CD-ROM、DVD-ROM或蓝光盘)或存储器(诸如ROM、RAM、EEPROM、EPROM、闪速存储器或便携式/可移动存储器设备),等等。传输介质可以是通信信号、数据广播、两个或更多计算机之间的通信链路,等等。
Claims (13)
1.一种根据第一预定函数处理数据的方法,该方法包括:
接收一定量的编码数据,其中所述一定量的编码数据是已经使用错误控制码进行编码的一定量的数据;以及
使用第二预定函数处理所述一定量的编码数据以生成输出;
其中所述第二预定函数对应于所述第一预定函数,原因在于利用所述第二预定函数处理使用所述错误控制码进行编码的一些数据的结果等于利用所述错误控制码对利用所述第一预定函数处理所述一些数据的结果进行编码的结果。
2.权利要求1所述的方法,包括:
使用所述错误控制码来检测在所接收的一定量的编码数据中是否存在错误或者在所述输出中是否存在错误,并且如果检测到错误,则施行以下各项中的一个或多个:
(a)将所述输出设置成与所接收的一定量的编码数据基本上不相关;
(b)将所述输出设置成随机值;
(c)对所接收的一定量的编码数据或者对所述输出施行所述错误控制码的错误纠正解码操作;
(d)停止进一步处理操作。
3.一种使得数据处理器能够根据第一预定函数处理数据的方法,该方法包括:
生成第二函数,该第二函数对应于所述第一预定函数,原因在于利用所述第二函数处理使用预定错误控制码进行编码的一些数据的结果等于利用所述错误控制码对利用所述第一预定函数处理所述一些数据的结果进行编码的结果;以及
将所述数据处理器配置成使用所述第二函数来处理编码数据,其中所述编码数据是根据错误控制码进行编码的数据。
4.权利要求3所述的方法,其中不可能根据所述第二函数确定所述预定错误控制码的生成器多项式。
5.一种将数据从第二实体提供到第一实体的方法,所述第一实体被布置成通过执行根据权利要求1或2的方法来根据第一预定函数处理所述数据,所述方法包括:
所述第二实体使用错误控制码对所述数据进行编码从而生成一定量的编码数据;以及
所述第二实体向所述第一实体提供所述一定量的编码数据。
6.权利要求5所述的方法,包括所述第二实体在向所述第一实体提供所述一定量的编码数据之前向所述一定量的编码数据添加可纠正错误。
7.权利要求6所述的方法,其中所述错误依赖于所述数据。
8.权利要求6所述的方法,其中所述错误是随机生成的。
9.权利要求6到8中任一项所述的方法,其中所述第二实体被布置成在第一次向所述第一实体提供所述一定量的编码数据时向所述一定量的编码数据添加第一错误,并且被布置成在第二次向所述第一实体提供所述一定量的编码数据时向所述一定量的编码数据添加第二错误,其中所述第二错误不同于所述第一错误。
10.权利要求5到9中任一项所述的方法,其中由所述第一实体和所述第二实体使用的所述错误纠正码至少部分地依赖于所述数据。
11.一种被布置成执行根据前面的权利要求中任一项的方法的系统。
12.一种计算机程序,该计算机程序当被处理器执行时使得所述处理器执行根据权利要求1到10中任一项的方法。
13.一种存储根据权利要求12的计算机程序的计算机可读介质。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2013/056617 WO2014154271A1 (en) | 2013-03-27 | 2013-03-27 | Data processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104769675A true CN104769675A (zh) | 2015-07-08 |
CN104769675B CN104769675B (zh) | 2019-01-11 |
Family
ID=48092923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380053018.1A Expired - Fee Related CN104769675B (zh) | 2013-03-27 | 2013-03-27 | 数据处理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20160006541A1 (zh) |
EP (1) | EP2885785B1 (zh) |
CN (1) | CN104769675B (zh) |
WO (1) | WO2014154271A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681801A (zh) * | 2016-03-30 | 2016-06-15 | 成都芯程科技有限责任公司 | 一种实现h.264cavlc解码容错功能的方法及解码器 |
CN107302420A (zh) * | 2017-06-20 | 2017-10-27 | 北京科技大学 | 一种线性网络编码方法 |
CN111628996A (zh) * | 2020-05-26 | 2020-09-04 | 南通职业大学 | 一种基于物联网的电子数据通信方法及系统 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10237144B2 (en) * | 2012-10-29 | 2019-03-19 | T-Mobile Usa, Inc. | Quality of user experience analysis |
CN106464484B (zh) | 2014-03-31 | 2019-08-09 | 爱迪德技术有限公司 | 预定函数的混淆执行 |
US20170332279A1 (en) * | 2014-12-08 | 2017-11-16 | Nec Corporation | Wireless resource control system, wireless base station, relay apparatus, wireless resource control method, and program |
WO2017007521A1 (en) * | 2015-07-09 | 2017-01-12 | Hrl Laboratories, Llc | Non-malleable obfuscator for sparse functions |
US10509918B1 (en) * | 2015-09-18 | 2019-12-17 | Hrl Laboratories, Llc | One-time obfuscation for polynomial-size ordered binary decision diagrams (POBDDs) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110004812A1 (en) * | 2009-07-01 | 2011-01-06 | Silicon Motion, Inc. | Coder-decoder and method for encoding and decoding an error correction code |
US20110185265A1 (en) * | 2010-01-27 | 2011-07-28 | Raghunath Cherukuri | High-speed and agile encoder for variable strength long BCH codes |
US20120246548A1 (en) * | 2007-09-14 | 2012-09-27 | Motorola Mobility, Inc. | Multi-layer cyclic redundancy check code in wireless communication system |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5517511A (en) * | 1992-11-30 | 1996-05-14 | Digital Voice Systems, Inc. | Digital transmission of acoustic signals over a noisy communication channel |
US5591956A (en) * | 1995-05-15 | 1997-01-07 | Welch Allyn, Inc. | Two dimensional data encoding structure and symbology for use with optical readers |
US5745503A (en) * | 1995-04-11 | 1998-04-28 | Nokia Mobile Phones Ltd. | Error correction decoder that operates in either ARDS system or a RBDS system |
US6944803B2 (en) * | 2000-07-06 | 2005-09-13 | Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communications Research Centre Canada | Code structure, encoder, encoding method, and associated decoder and decoding method and iteratively decodable code structure, encoder, encoding method, and associated iterative decoder and iterative decoding method |
TWI227020B (en) * | 2002-05-29 | 2005-01-21 | Via Optical Solution Inc | Signal correcting device and method |
US7426676B2 (en) * | 2004-01-14 | 2008-09-16 | Broadcom Corporation | Data retrieval from a storage device using a combined error correction and detection approach |
JPWO2006022136A1 (ja) * | 2004-08-24 | 2008-05-08 | シャープ株式会社 | データ通信システム、受信装置及び送信装置 |
US7447977B2 (en) * | 2005-06-30 | 2008-11-04 | Dolby Laboratories Licensing Corporation | Method and system for optimizing forward error correction of multimedia streaming over wireless networks |
US8875000B2 (en) * | 2010-11-01 | 2014-10-28 | Marvell World Trade Ltd. | Methods and systems systems for encoding and decoding in trellis coded modulation systems |
-
2013
- 2013-03-27 EP EP13715927.3A patent/EP2885785B1/en active Active
- 2013-03-27 CN CN201380053018.1A patent/CN104769675B/zh not_active Expired - Fee Related
- 2013-03-27 US US14/430,908 patent/US20160006541A1/en not_active Abandoned
- 2013-03-27 WO PCT/EP2013/056617 patent/WO2014154271A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120246548A1 (en) * | 2007-09-14 | 2012-09-27 | Motorola Mobility, Inc. | Multi-layer cyclic redundancy check code in wireless communication system |
US20110004812A1 (en) * | 2009-07-01 | 2011-01-06 | Silicon Motion, Inc. | Coder-decoder and method for encoding and decoding an error correction code |
US20110185265A1 (en) * | 2010-01-27 | 2011-07-28 | Raghunath Cherukuri | High-speed and agile encoder for variable strength long BCH codes |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681801A (zh) * | 2016-03-30 | 2016-06-15 | 成都芯程科技有限责任公司 | 一种实现h.264cavlc解码容错功能的方法及解码器 |
CN107302420A (zh) * | 2017-06-20 | 2017-10-27 | 北京科技大学 | 一种线性网络编码方法 |
CN107302420B (zh) * | 2017-06-20 | 2019-11-08 | 北京科技大学 | 一种线性网络编码方法 |
CN111628996A (zh) * | 2020-05-26 | 2020-09-04 | 南通职业大学 | 一种基于物联网的电子数据通信方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2014154271A1 (en) | 2014-10-02 |
US20160006541A1 (en) | 2016-01-07 |
EP2885785A1 (en) | 2015-06-24 |
EP2885785B1 (en) | 2021-10-13 |
CN104769675B (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104769675A (zh) | 数据处理 | |
Hou et al. | BASIC codes: Low-complexity regenerating codes for distributed storage systems | |
GB2473154A (en) | A variation of the McEliece public key cryptosystem using a reduced public key | |
KR100887003B1 (ko) | 데이터의 무결성을 보호하는 장치 및 방법과 컴퓨터 판독가능한 기록 매체 | |
US8694872B2 (en) | Extended bidirectional hamming code for double-error correction and triple-error detection | |
KR20150112893A (ko) | 대수적 조작으로부터 데이터를 보호하는 방법 | |
CN104769881A (zh) | 具有错误校正的aes实现方式 | |
Hou et al. | A new construction and an efficient decoding method for Rabin-like codes | |
US7346834B2 (en) | Randomizer systems for producing multiple-symbol randomizing sequences | |
Walters et al. | Constant-time BCH error-correcting code | |
Loureiro et al. | Function hiding based on error correcting codes | |
Kim et al. | Data hiding based on overlapped pixels using hamming code | |
US20160112069A1 (en) | Methods and Apparatus in Alternate Finite Field Based Coders and Decoders | |
Guo et al. | Sca-ldpc: A code-based framework for key-recovery side-channel attacks on post-quantum encryption schemes | |
JP4756489B2 (ja) | 誤り訂正符号化装置、誤り訂正符号化方法及びプログラム | |
WO2006117769A2 (en) | Method and apparatus for generating error-correcting and error-detecting codes using zero-divisors and units in group rings | |
US9645883B2 (en) | Circuit arrangement and method for realizing check bit compacting for cross parity codes | |
KR102211648B1 (ko) | 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법 | |
Zhong et al. | Error detection and control of IIoT network based on CRC algorithm | |
JPWO2006013637A1 (ja) | 電子タグ、リーダ、及びその製造方法 | |
Tallini et al. | Reed-Muller codes, elementary symmetric functions and asymmetric error correction | |
Yu et al. | An Efficient Implementation Scheme for Lattice Reduction in the List-Decoding Algorithm for the Binary Goppa Codes | |
Bose | Application of Polynomials in Coding of Digital Data | |
Meshcheulov et al. | Methods for information coding in mobile systems | |
Singh et al. | Encode-then-Encrypt: A Novel Framework for Reliable and Secure Communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190111 Termination date: 20210327 |
|
CF01 | Termination of patent right due to non-payment of annual fee |