CN1781117A - 数据处理方法 - Google Patents

数据处理方法 Download PDF

Info

Publication number
CN1781117A
CN1781117A CNA2004800112302A CN200480011230A CN1781117A CN 1781117 A CN1781117 A CN 1781117A CN A2004800112302 A CNA2004800112302 A CN A2004800112302A CN 200480011230 A CN200480011230 A CN 200480011230A CN 1781117 A CN1781117 A CN 1781117A
Authority
CN
China
Prior art keywords
prime
data
channel
petri net
petri
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.)
Pending
Application number
CNA2004800112302A
Other languages
English (en)
Inventor
沃尔夫·哈德
贝恩德·佩特斯
乌韦·里萨斯
斯蒂芬·韦博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Syncrosoft SIA
Original Assignee
Syncrosoft SIA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Syncrosoft SIA filed Critical Syncrosoft SIA
Publication of CN1781117A publication Critical patent/CN1781117A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models

Abstract

用于处理数据的方法,其中Petri网被编码,被写入存储器并且被至少一个示例从存储器中读取并执行,其中Petri网的转换借助至少一个头从至少一个带中读出字符或者字符串并且/或者在至少一个带中写入字符或者字符串(图1)。在一种可选方案中,数据处理的、合作的网络被组合,组合结果被编码、被写入存储器并且被至少一个示例从存储器中读出并且执行。其中组件可以具有加密的任务。数据处理的网络可以从被保护地执行的加密函数接收第二数据。本发明实现了数据处理,它阻止了公开的、可能更少处理步骤的语义分析,并且可以制造处理步骤和硬件的难以分离的结合。

Description

数据处理方法
技术领域
本发明涉及用于数据处理的方法。
背景技术
今天,软件和内容、例如音乐,可以通过因特网经济地被传播。许多拷贝保护机制已经被开发用于保护创作者的利益。当消费者是期待具有未被加密形式的内容的人的时候,内容的保护是困难的。在消费过程中,每个内容都可以以模拟的形式被记录,被数字化并且随后被拷贝。这个问题被称为模拟陷阱(analogue hole)。根据现有技术,内容的非法拷贝只能被妨碍,但是不能被阻止。在软件的执行中没有模拟陷阱的问题。虽然软件的使用者是人,但是直接的“消费者”是计算机或处理器。由此,可能的是,通过拷贝保护机制改变软件,而对使用者没有烦扰的影响。软件保护的概念应该被理解为对与软件相连的知识产权的保护。关于软件的应用领域、关于该领域的特定问题以及其转化为软件的解决方案的知识都属于知识产权。而且,可能是问题特定的或解决方案特定的、所有用于写出软件的技术也属于值得保护的知识产权。通常,创作者希望保护他的知识并且保证只有他能够对软件进一步开发。为了保护所提到的价值,必要的是阻止借助于对软件机器码的分析来对源代码或等价的程序代码进行重构(反向工程),或者保证分析的成本比开发软件的成本更高。软件保护可以包括阻止对软件的未被授权的使用。为此目的,所完成的保护方法和装置被称为软件拷贝保护,虽然许多方法和装置并不阻止拷贝,而是阻止使用软件。通过这种方式,非法的拷贝被抑制。
在已知的软件拷贝保护方法中,数据被从应用程序传输到被保护的硬件、被硬件加密并且随后由应用程序解密或者与在编译应用程序之前被加密的数据比较。只有在数据通过硬件被正确加密时,应用程序才工作正确。绕过该保护的一种方法是去除从机器码中得到的数据的比较。对此有对应措施:应用程序偶尔检测机器码的完整性,这样攻击者也必须找到这些检测。因此,一种更简单的绕过软件拷贝保护的方法如下:攻击者观察在应用程序和硬件之间的通信。他建立具有被交换数据的表格,并且在新建立的硬件驱动中借助这个表格模拟硬件。对应措施是采用与硬件的多个通信进程。其中还发送随机数给硬件,这样表格会变得太大。硬件加密的值只是看起开被应用程序处理。或者现在攻击者确信他必须找到和去除上面提到的完整性检验,或者他观察通信进程。他将每个发送给硬件的值写入大的存储器中并且检验,哪些值被多次发送。只有这些值以高概率被应用程序真正地处理。硬件模拟随后使用具有这些值的表格。如果在模拟中对一个确定的输入在表格上没有记录,则以随机数回答,因为应用程序可能评估并且识别回答的偏差(Streuung)。表格明显比前面使用的存储器小。
在【4】中所描述的软件拷贝保护方法中,在与PC相连的插接元件中以及与其平行地在被保护的应用程序中计算加密函数。加密函数的子函数可以在应用程序中被插入至不同位置,这样不进行程序代码的语义分析,提取(Extraktion)是不可能的。借助加密函数的输出值,软件的计算被伪造并且在对应用程序的进程快要造成不良影响之前借助插接元件的输出值被纠正。没有对于攻击者不可复制的插接元件,被保护的应用程序就不能被使用。所描述的方法具有缺点,即子函数集成至待保护的软件中是非常昂贵的。
在另一种软件拷贝保护方法中,待保护程序的部分被保存在智能卡的不可读出的存储器中,并且由智能卡控制器执行。这些部分的传输仅以被加密的形式进行。这种处理器的例子是Syncrosoft【12】和Sospita【11】公司的USB设备形式的装置。在这种方法中,软件的加密也阻止反向工程。
在特定的、可能外接在PC上的处理器上执行程序代码的缺点是差的吞吐量。虽然这对于执行数字权力管理交易足够,但是在许多情况下执行待保护的应用程序的主要部分太慢。用于程序加密和被保护的执行的装置集成在PC处理器上太昂贵,并且在开发和发布新的处理器版本时可能导致标准化和兼容性问题。
在【10】中描述了一种对付软件的反向工程的方法,它通过引入复杂的寻址机制而掩藏程序的基本操作和数据流之间的逻辑联系。这种发明的缺点在保护面向对象开发的软件的尝试中显现出来。面向对象开发的软件通常包括非常短的方法,它由很少的程序指令构成并且大多数以少量变量实现非常简单的数据流。至少在这种情况下,所描述的方法效果不显著。此外,对于这种方法,没有公开这种可能性,即产生与硬件难以分开的结合,并由此阻止被转换的软件的拷贝。
发明内容
本发明的任务在于,实现用于数据处理的方法,它使公开的、可能很少的处理步骤的语义分析变得困难或者阻止语义分析,并且实现对于攻击者难以分开的处理方法与硬件的结合。本方法在预定处理步骤上的应用应该可能具有很小的开销。
本发明任务通过权利要求1及/或9及/或20解决。
根据权利要求1,Petri网被编码,其转换字符(TransitioneSymbole)或者字符串借助一个或多个头(Kopf)与至少一个带(Band)交换。Petri网的编码被写入存储器并且被至少一个示例(Instanz)读取并执行。Petri网以及概念“位置”、“转换”和“标记”在【6】和【8】中描述。概念“头”和“带”根据描述图灵机的概念而被使用,其中由于技术原因,与图灵机模型不同,带是有限的。图灵机例如在【5】中被描述。优选的是,在每个读取和写入过程中,头在带上移动。然而,头移动也可以是可控的。此外,存在至少两个头用于处理速度是有利的,因为大多数运算都以至少两个操作数工作。带可以是处理器的寄存器或者RAM的存储单元。头可以是具有用于掩蔽带的值的掩码的寄存器。对于Petri网的执行,这里的意思是接通Petri网的转换。通过在带上工作的Petri网的执行,数据被处理。存储器和执行示例可以以多种方式实现。对于发明思想重要的是,位于Petri网后面的语义即使在知道Petri网时也难以分析。Petri网的生成和编码优选地在与执行不同的存储器中进行。Petri网、头、带、字段和字符的编码可能在许多变量中。企图获得关于Petri网的语义的知识的攻击者只有这种可能性,即将Petri网与他已知的Petri网进行比较,或者借助输入和输出例子猜测语义。根据权利要求20,Petri网可以从加密函数中接收并且处理字符或字符串。加密函数可以与实施Petri网的装置固定相连,这样产生了对于攻击者难以分开的处理方法与硬件的结合。
在本发明的一个实施例中,Petri网、头和带形成了通用的图灵机。Petri网可以形成图灵机的有限控制。在通用图灵机的带上储存了图灵机或通用图灵机的编码。在后一种情况中,图灵机或通用图灵机又可以被储存在最后提及的通用图灵机的带上,等等。这种循环可以继续下去。在Petri网的执行中的处理步骤的语义分析随着每个循环愈发困难。
在本发明方法的另一实施例中,Petri网通过信道与一个或多个其他Petri网交换字符或字符串。由此提高了复杂性并且由此使得可分析性困难。
根据本发明的另一实施例,转换的接通可以借助表格快速地实施。与例如在【2】中描述的序列机(sequentielle Maschine)类似,基于标记或状态以及输入,可以从表格中快速求得后继标记或后继状态和输出。输入或输出也可以可选地实现。
在接通转换中的速度提升可以通过一种方法实现,其中处理器以指令执行转换的接通,其中指令读入表格作为操作数。处理器的指令集可以包括多个这种指令。
Petri网的输出可以被输入到另一Petri网中并且被继续处理。由多个Petri网构成的系统是一个合作(Kooperation)。在本发明的另一实施例中,Petri网的合作形成图灵机。图灵机的字段、带和有限控制被编码为Petri网,它们可以通过信道交换字符或字符串并且可以相互同步。
对于保护软件有利的是将该软件翻译为Petri网或Petri网的合作或者图灵机。这个翻译过程可以通过特定编译器被机器地执行。
在本方法的一个实施例中,Petri网的合作的执行可以通过执行组合规则来实现。其中,生成显示出与Petri网络的合作相同的外部输入/输出行为的Petri网,它具有的局限是输出可能延迟地进行。由此,所生成的Petri网的期望功能性不会一定被损害。
本发明任务的一种可选方案根据权利要求9规定,数据处理的、合作的网络被组合,组合结果被编码、被写入存储器并且由至少一个示例从存储器中读出并执行,其中除了输出延迟之外,组合结果是对于外部输入/输出行为与其组件等效的网络。其中去除了【1】和【3】的公钥加密方法,在该方法中,有限自动机组合的组合结果形成公钥。本发明涉及考虑到作为本发明的基础的发明任务的一般数据处理。本方面任务被解决,因为没有组件的知识很难对组合结果进行语义分析。在许多情况下,分解是困难问题(hartes Problem)或np困难问题。
权利要求9的特征没有限定哪些类型的数据处理的、合作的网络被组合。已知,一种类型的多个网络可以通过另一类型的网络被模拟或者互相等效。例如,在【7】和【9】中示出,递归的McCulloch-Pitts网络,人造神经网络的一种特定形式,与有限自动机等效。有限自动机又可以通过B/E网络描述。B/E网络是特定的Petri网。组合的描述必然依赖于网络的正式定义,并且在内容方面,不依赖于该定义可以定义组合的许多不同的变形。权利要求9也包括基于相同发明思想的组合的变形。
组件和组合结果可以是通过可选地现有信道发送和接收字符或字符串的Petri网。在本发明的一个实施例中,每个组件形成具有可选的多个输入信道和可选的多个输出信道的序列机。设C是可列举的信道的集合,Δ是有限字母表的有限集合,γ:C->Δ,Ω=(C,Δ,γ)是通信规则,EΩ={e|e={(c,σ)|σ∈γ(c)∧((c,σ1)∈e∧(c,σ2)∈eσ1=σ2)}}∪{θ}是输入/输出事件的集合并且S是状态的有限集合。序列机的系统被定义为
MΩ:={(S,EΩ,δ,β,s0)|δ:R→S∧β:R→EΩ∧RS×EΩ
∧([(s,x),y]∈β(cx,σx)∈x(cy,σy)∈y:cx≠cy)∧s0∈S}。
在组合函数中,同步信道的集合作为参数。待组合的机器的转换根据设想的全局时钟接通并且不存在旁路(Nebenlaeufigkeit)。字符发射机和接收机之间的“会合”应该是可能的,它的前提是,组件可以互相等待。这通过接通等待的机器的“空转换”而实现。空转换不读取任何东西也不写任何东西。在具有λ运动【5】的不确定自动机中存在这样的转换。λ运动在这里被称为ε运动。在待组合作为B/E网络的不确定序列机中,存在多个可能的接通顺序或连续的过程【6】。每个可能的接通顺序对应于一个组合的序列机。组合函数是序列机在幂集合(Potenzmenge)中的映射。假设Ω=(C,Δ,γ)是通信规则,并且具有BC的B是内部同步信道的集合。组合 comp B : M Ω n → 2 M Ω 被定义为
comp B : = { ( ( K 1 , . . . , K n ) , K ~ ) |
( K 1 , . . . , K n ) = ( ( S 1 , E Ω , δ 1 , β 1 , s 0 1 ) , . . . , ( S n , E Ω , δ n , β n , s 0 n ) )
Figure A20048001123000124
( [ ( s 0 1 , x 1 ) , s 1 ′ ] , . . . , [ ( s 0 n , x n ) , s n ′ ] ) ∈ δ 1 × . . . × δ n
Figure A20048001123000126
Figure A20048001123000127
Figure A20048001123000129
Figure A200480011230001210
∃ M ~ Ω ′ = { K ~ ′ | ∃ ( ( x 1 , . . . , x n ) , ( y 1 , . . . , y n ) , ( s 1 ′ , . . . , s n ′ ) , x ~ , y ~ ) ∈ T :
K ~ ′ = comp B ( [ ( S 1 , E Ω , δ 1 , β 1 , s 1 ′ ) , . . . , ( S n , E Ω , δ n , β n , s n ′ ) ] ) }
K ~ = ( S ~ , E Ω , δ ~ , β ~ , s 0 ~ )
Figure A20048001123000134
( ( x 1 , . . . , x n ) , ( y 1 , . . . , y n ) , ( s 1 ′ , . . . , s n ′ ) , x ~ , y ~ ) ∈ T }
∪ ∪ ( S ~ ′ , E Ω ′ , δ ~ ′ , β ~ ′ , s ~ Ω ′ ) ∈ M ~ Ω ′ δ ~ ′
( ( x 1 , . . . , x n ) , ( y 1 , . . . , y n ) , ( s 1 ′ , . . . , s n ′ ) , x ~ , y ~ ) ∈ T }
∪ ∪ ( S ~ ′ , E Ω ′ , δ ~ ′ , β ~ ′ , s ~ 0 ′ ) ∈ M ~ Ω ′ β ~ ′
在按照这个定义的组合中,存在两种类型的信道:信道A的集合,其中每个信道只由一个机器使用,以及同步信道 B的集合,其中每个信道被至少两个机器使用。同步信道 B的集合在组合中被细分为内部和外部同步信道。B B是不再在组合的机器中被使用的同步信道的集合。在许多应用中,B= B。内部和外部同步信道之间的主要区别是,当通过内部同步信道与同步转换交换字符时,可以只接通具有该信道的转换。在外部同步信道中,条件没有这么严格:信道上的输入或输出不必须与被同步的转换不兼容。因此,被同步的转换不必须与该信道工作。通过外部的同步信道,可以与外部世界交换字符。如果具有外部同步信道的转换应该内部地被同步,则必须建立附加的内部同步信道。一种可能的递归组合算法如下工作:组合程序被待组合的机器的初始状态调用。在该程序中,初始状态的被归类的集合作为被组合的状态被记录到被组合的状态的列表中。然后,查找兼容的转换的集合(每个组分,一个转换),其分别具有初始状态作为输入位置。当所有被分配给这些转换的事件集合成对地兼容,并且由机器在内部同步信道上写或读的每个字符被另一机器读取或写入时,转换是兼容的。当所有事件成对地兼容或至少一个集合是空的时,两个事件集合是兼容的。空的事件集合与任何其它的事件集合兼容。当内部的或外部的同步信道的两个事件或者涉及不同的信道,或者同一符号被一个机器读取并且被另一个机器写入或者被两个机器读取或写入时,内部的或外部的同步信道的两个事件是兼容的。例如,排除了两个机器将不同的字符同时写到信道上的情况。当被组合的状态还未被包括在列表中时,对于每个被发现的兼容的转换的集合,转换的输出位置的被归类的集合作为被组合的状态被记录到被组合的状态的列表中,并且作为初始状态被输入到组合程序的递归调用中。如果被组合的状态已经在列表中,则组合程序终止。当没有找到更多的新的可组合状态时,算法终止。
关于旁路的信息在组合comp中被丢失。为了考虑旁路,必须修改组合规则。在组合中,只有具有同步信道的转换被组合为转换。
组合结果经常具有等效的状态。当组合结果的积(ProdukteKompositionsergebnisse)在其他组合中被继续处理时,这样的冗余是不希望的。因此,人们努力寻找具有最少状态的等效机器。最小化的映射在以下通过函数min:MΩ→MΩ表示。
在组合之后经常出现具有空事件集合的不希望的转换。这些转换可以通过位置边沿化的粗糙化(stellenberandete Vergroeberung)(概念在【6】中解释)来替代,其中边沿是转换的输入和输出位置。它被如此经常地重复,直到在机器中没有空转换。该映射在下面通过函数red:MΩ→MΩ表示。
通过将图灵机的一些组成部分组合起来,图灵机的控制流和结构可以被遮掩。例如,可以将不同带的任意字段组的组合。带的字段也可以与程序或读头(Lesekopf)组合。其他与不是图灵机组成部分的其它组件的组合也是可能的。
在本发明的另一实施例中,通过算法的翻译构成待组合的、数据处理网络。据此,算法的分解和分析被变得困难或者被阻止。
在本发明的另一实施例中,至少一个待组合的、数据处理网络是加密组件。如果该组件被随机地生成并且保密,则组合结果的分解被显著地变得困难或者是不可能的,特别是当多个组件是具有不同任务的加密组件时。该方法适合于加密运算顺序。运算读取操作数并且写入结果。希望获得关于运算的知识的攻击者可能将代表运算的网络与他已知的网络进行比较,或者他尝试借助输入和输出例子构建运算模型,使得运算和模型显示出等效的输入/输出行为。当值被加密以及被加密地处理时,这两种方法都被阻止了。通过将用于解密操作数的网络与运算的网络以及用于加密结果的网络组合起来,这是可能的。必须可以与外界无加密地交换值。于是,输入不被解密。类似地,输出不被加密。如果使用Petri网并且使用流加密方法(Stromverschluesselungsverfahren)用于解密和加密,其中该方法只在一个方向上处理输入字符串并且随着每个转换读入一个字符和写入一个字符,则加密不需要附加的时间,因为组合结果的每个转换都是组件的转换的合计。组合结果的状态数目的上界是每个组件的状态数目的积。被加密的运算的每个输出应该具有单独的加密,由此,攻击者不能通过尝试运算的不同拼接(Konkatenation)来推断出运算的功能性。
在本方法的另一实施例中,组件可以解压缩数据及/或在数据中插入水印。水印是识别标记或者证书,它被附在数据上,不会妨碍数据的使用。这种方法在将数据,如音频及/或视频数据,分发给终端用户中适用。水印可以在终端用户处在数据解密时被插入数据中。优选的是,解密和水印是终端用户独特的。其中,事先进行的加密不一定必须是终端用户独特的。解密可以与由特定硬件保护的加密函数连在一起,该加密函数的函数值是终端用户独特的。
在本方法的另一实施例中,寄存器可以被合并到寄存器组(Registerbank)中,并且由此互相交叠。交叠的意思是,攻击者不改变组中另一寄存器的值就无法改变一个寄存器的值。可以保证在其间至少一个对程序的正确运行重要的值被储存在组的一个寄存器中的时间间隔中寄存器内容的完整性。写操作的一个重要的模块是在以下被称为组合器的机器。组合器将分别分配给寄存器组中一个寄存器的不同信道的多个数据流可逆地映射到一个信道的数据流上。流入的数据流的字符集合的总数(Betrag)的积是组合器的输出的字符集合的总数的上界。可能的是,不是字符的所有组合都出现在输入信道上。由组合器生成的数据流被加密。这比加密流入组合器的数据流更有利,因为组合器的输出的字符集合比组件的字符集合大。以更大字符集合进行流加密比以更小字符集合更有效。为了从组合器的数据流中提取寄存器的数据,数据流首先被解密。然后,在使用分离器以后,可以读取各个寄存器的数据。除了寄存器的交叠,将数据储存在寄存器组中具有的优点是,数据流可以被隐藏。许多运算可以连续地在一个寄存器组中工作,而中间结果不离开寄存器组。为了遮掩寄存器组的状态,伪随机数可以被写入寄存器,该数在每次对寄存器组的读和写访问时被改变。于是,伪随机数发生器是寄存器组的组件。来自不在寄存器组中的寄存器的变化的数据可以被输入到该发生器中。
在本方法的另一实施例中,加密组件从被保护的被执行的函数接收数据并且对其处理,其中当从加密函数中没有接收到数据或接收到错误数据时,组合结果不工作或错误地工作。据此,实现了组合结果与加密函数的难分或不可分的结合,例如当软件需要组合结果并且加密函数的执行不可以自由地被再现时,这适合阻止对软件未授权的使用。另一种方法规定,另一种在功能性中被限制的组合结果不包含加密组件并且不需要从加密函数接收数据以保证没有错误的运行模式。这种方法适合于分发可以自由拷贝和散布的软件的演示版。组合结果必须在功能性中被限制,从而攻击者在软件的完整版中不能通过在演示版中使用的组合结果替代与加密函数结合的组合结果并且由此生成没有限制的完全版。
借助一种可选方法实现了,数据处理网络或程序的执行被耦合至执行装置。与装置,例如PC或PDA,固定连接的、被保护地执行的加密函数,例如Trusted Computing Platform Alliance(TCPA)【13】的TPM芯片的函数,与网络或程序交换数据。当从加密函数没有接收到数据或接收到错误的数据时,数据处理网络或程序不工作或者错误地工作。在本方法的一个实施例中,超过加密函数的函数值计算的值对于攻击者不可读地或不可改变地储存,并且在另一函数值的继续计算中,该值影响继续计算的结果,其中该值根据预定规则改变。据此,阻止了多个网络或程序示例可以不可控地使用加密函数的函数值。
具体实施方式
在图1中,执行的示例对一个存储器进行访问,该存储器储存了Petri网以及带x和y。初始标记在一个位置上,即初始状态s0上有一个标记。随着转换的每次接通,标记从输入位置向输出位置移动,借助一个头从带x中读取输入字母表的字符,并且借助另一个头将输出字母表的字符写在带y上。在每次读和写过程之后,头向右移动一个字段。网络执行二进制乘法[y=2x]。
在以下所有的图中都没有示出实施的示例、存储器、头和带。替代概念“Petri网络”,使用概念“网络”。
图2示出了二进制加法。一个标记位于初始状态s0上。转换具有ab/c形式的符号(Beschriftung)。输入和输出信道在每个转换的输入位置以相同的形式被指示(nennen)。a和b是用于操作数的信道,c是用于结果的信道。具有相同输入位置和相同输出位置但具有不同输入和输出的转换在本图中和许多其它的图中通过一个矩形标识。矩形的每行对应于一个转换。
存在这种情况,其中处理的多个结果应该被并行计算并且被输出。图3示出了一个网络,它除了多个输入信道外还有多个输出信道,并且将两个二进制表示的自然数相加:[c=a+b,d=a-b]
在图4和图5中示出了网络的其他例子。在图4中的网络计算[t=3·a,d=a-b,s=a+b],在图5中的网络计算[s=a+b+c]。
图6示出了两个网络M和M’的组合。输入和输出事件在转换中通过集合,如权利要求11中的集合,来描述。M以转换t4通过信道b写字符σ,M’通过同一信道以转换t3’读取字符σ。b是内部同步信道。t4和t3’是单一转换,它们在信道b上工作并且因此只能同步地接通。存在组合结果K1、K2和K3。从位置s0和s1’开始没有兼容的转换继续。所描述的组合程序因此在状态(s0,s1’)被记录到组合状态的列表之后终止。
图7示出了相同网络的组合,其中只有具有同步信道的转换被合并为一个转换,以得到关于旁路的信息。
如果在一个机器M中人们想将输出信道a通过信道b替换或将输入信道b通过信道a替换,则将M与在图8中示出的机器组合,其中a或b是内部同步信道。{σ1,...,σm}是分配给信道a和b的字符集合。
图9示出了,网络的拼接也可以通过组合实施。具有空的事件集合的转换(“空转换”),其输入位置与输出位置相同,将在下面被称为等待转换(Wartetransition)并且在图9中通过空的矩形表示。M在信道a上写1,随后在信道b上写2。M’在信道c上写3,随后在信道d上写4。M或M’此外还具有信道k,用于拼接和等待转换t3或t1’。在M的转换t2中,字符κ被写在信道k上。M’的转换t2’在信道k上读取字符κ。若将M和M’与k组合作为内部同步信道,则得到机器K,它依次在信道a、b、c或d上写入1、2、3或4。如果机器应该是可拼接的,则初始状态和最终状态的环境必须相应地被准备。用于拼接的信道可以被分配给不同的转换。拼接可以被信道的适当替代影响。
在图10中,自然数2由在信道a上输出二进制字符串010的机器表示。这对应于等式a=2。用于加法c=a+b的机器在信道a和b上读并且在信道c上写。这两个机器通过内部同步信道a被组合。图11示出了结果。
{c=b+2 mod 8}=comp{a}([c=a+b],[a=2])
因为组合算法在a=2的最终状态中不再发现转换,所以它终止。组合结果只能输出长度为3的字符串,通过mod8表示。如果通过内部同步信道b将c=b+2mod 8与图12的机器b=3组合,则得到机器c=5,同样在图12中示出。
[c=5]=comp{b}([c=b+2 mod 8],[b=3])
图13示出了整个过程。通过将所有部件组合在一个步骤中,无须中间结果c=b+2mod 8就得到组合结果c=5。
[c=5]=comp{a,b}(|c=a+b],[a=2],[b=3])
机器c=a+b可以处理无限长的字符串。当操作数通过输出零的循环转换而结束时,与一个操作数组合之后的组合结果也可以这样。在图14中,a=2二进制地以主要的(fuehrend)零示出。与c=a+b组合以后的组合结果可以处理无限长的字符串,同样在图14中示出。
[c=b+010]=comp{a}([c=a+b],[a=010])
在另一个例子中,等式a=2a+c应该被简化。为了它可以被处理,它被编码为网络。为此,首先建立等式d=2a+c,随后d通过a替代。图15示出了第一步骤。如果现在d被a替代,则在其中在替代之前被分配给信道a和d的字符不相同的所有转换都是无效的。无效的转换和不再可到达的位置s3在图15中用阴影背景表示。在替代之后,信道a可以被移除,因为在一个转换中不能同时在一个信道上读和写。为了在移除之后信道a的信息不丢失,拷贝a’=a被采用。图16在转换min的输入位置示出了这些步骤的结果。可以表示,s1和s2等价。在通过min的最小化之后,结果是等式a=-c。如在图17中所示,这可以被检验。如果在二进制地工作的序列机a=e+f中传输状态被定义为初始状态,则得到机器或网络a=e+f+1。随后,e通过c的1补数(Eins-Komplement)替代,这样a=-c+f。根据f=0,则a=-c。
以下将自然数矩阵编码为网络并且通过组合相加。图18中的网络对应于{1,2}2对{1,2,3,4}的函数,它给出矩
A = 2 0 1 3
的行i和列j,其中函数值{0,1,2,3}被二进制地编码为{0,01,010,011}。网络首先读取行标记和列标记并且输出相应的矩阵元素。标出用于读入标记的信道在与其它网络组合时起着重要作用。因此,以下与通常的矩阵描述方法不同,标记被附加给矩阵识别码(Matrix-Bezeichner):Aij。组合得出:
[ c ij = 3 1 2 3 ] =
comp { a , b } ( [ c = a + b ] , [ a ij = 2 0 1 3 ] , [ b ij = 1 1 1 0 ] ) ,
它在图19中被示出。等待转换通过在输入位置(输出位置)的字符串“//”表示。c=a+b的初始状态有一个等待转换。信道i和j成为外部同步信道。它们仍然保留在组合结果中,然而内部同步信道a和b不被保留。c不是同步信道。
图20示出了由网络的合作形成的图灵机的信道结构。转换对应于涉及的合作方,位置相应于信道。作为网络实现的有限控制(endliche Kontrolle)通过信道x读或者通过信道y在带上写字符。有限控制在每次读和写过程中通过信道I将移动命令提供给头。具有字段Fi的头H通过信道zi通信。图21示出了具有字段的带,用于储存字符0、1和τ。所有字段在开始都储存字符τ。在图22中,带的初始化Init01以字符串τ01τ示出。转换中替代字符的点表示,在此每个被许可的字符允许被插入。具有标记“./Rτ”和有标记“x/Iy”的输入位置的的转换矩形是三个具有具有以下输入/输出事件集合的相同输入和输出位置的缩写:1.转换:{(x,0)}/{(I,R),(y,τ)},2.转换:{(x,1)}/{(I,R),(y,τ)},3.转换:{(x,τ)}/{(I,R),(y,τ)}。若将初始化Init01与头H和四个带字段F1,...,F4组合,其中x,y,I,z1...z4是内部同步信道,则在第一组合步骤中从所有组件的初始状态出发只有一组兼容的转换,如在表1中所示:
  组件   信道   字符
  初始化P   x/Iy   τ/Rτ
  头H   yI/z1   τR/τ
  字段F1   z1/x   τ/τ
  字段F2,F3,F4   (等待转换)   -
表1兼容转换
组件形成字符生产者和消费者的闭合循环。在组合之后,头位于储存1的字段F3上。在图23中示出了用于识别语言L={0n1n|n≥1}的有限控制P1。前提是,待识别的词以一个在前面的和后面的τ左对齐地位于带上,并且头在右边的τ的左边位于字段上。假设,词属于语言L,则有下列的过程(与在【5】中类似):在最右边的1通过τ替代。然后头向左边移动直到下一个τ,然后向右一个字段。在最左边的0在这里被储存并且通过τ替代。随后,在最右边的1、然后在最左边的0通过τ替代,等等。如果0通过τ替代,并且在其右边发现τ,则机器接受该词。接受通过在信道Λ上写入1来通知外界。若机器在寻找0或1时发现1或0或者τ,则词不被接受并且在信道Λ上输出0。带的使用者(在本情况下为有限控制)无需关于带的结构的知识。带和字段也可以例如在机器中被组合。
使用者只需要关于带的接口的知识、输入和输出信道的意义。用于识别语言的有限控制的使用者必须知道,如何将待检验的词写在带上。关于信道I的意义以及将前述的τ写在带的第一字段上的协议的知识属于其中。该知识可以通过图24中的机器被封装。如果将该封装与带组合,则可以输入如图25中所示的形式的字符串。假设c∈L。如果将E与P1拼接(E的最终状态是P1的初始状态)并且将它与T组合,其中所有被至少两个机器使用的信道是同步信道,则在使用red之后得到图26a)中示出的机器。若 c ∉ L , 则结果是图26b)中示出的机器。
Figure A20048001123000212
图27a)示出了运算的加密执行。操作数a、b或c被加密为a’、b’或c’。a和b的解密以及c的加密被与运算组合。图27b)示出了,未被加密的操作数a和b如何借助运算被处理,以及结果c任何被加密为c’。运算和加密被组合。
图28a)或b)示出了在寄存器组中使用的、信道的组合器或其反转、分离器。在图29中示出了寄存器组的一种可能的结构。为了改变寄存器值,多个运算被组合。通过信道
Figure A20048001123000213
读取具有三个寄存器R1、R2和R3的寄存器组R’。寄存器R3的旧寄存器值在信道x3上被输出。通过信道y3,新的值被写入寄存器R3中。图29b)示出了组合,它输出寄存器R3的内容,而不改变寄存器组。
在图30中示出了,硬件如何将应用程序的数据以流加密进行加密。被硬件加密的值被应用程序解密。解密函数与应用程序的运算组合。运算执行之后的结果被加密。借助硬件的反函数的解密和具有运算的加密并行进行。被解密的值对于攻击者在任何时刻都不可见。是否硬件加密以及应用程序解密或者反过来,都不重要。重要的是,两个函数的连接是一致的。并行的解密和加密是可能的,因为只使用流加密。也可能使用其它的加密函数。许多已知加密函数只能借助用于储存中间结果、例如循环结果(Rundenergebnisse)的寄存器,来实现。这些中间结果必须被储存在被保护的寄存器组中。如果块加密的循环是流加密,则该块解密的最后一个循环可以与运算和运算的代码转换组合。替代加密函数,也可以在硬件中执行Hash函数。图31示出了一种可能的模式。至Hash函数的输入的一部分必须保密。该部分对应于加密函数中的密钥。输入的其他部分是来自应用程序的数据。Hash函数的输出值可以以Hash函数的仿真的输出值,例如通过自补偿的运算,如加法和减法,加至被执行的运算的结果上。这些被执行的运算的结果只有当Hash函数和其仿真给出相同的值时才正确。运算、Hash函数或Hash函数的循环、加法、减法和运算的所有代码转换都可以被组合。至Hash函数的输入的保密部分以及可能的中间结果必须被储存在被保护的寄存器组中。
顺序的、可逆的机器可以被用于加密和解密。顺序的、可逆的机器的一个例子在图32中被示出。在每个状态中,在给出的输出时,可以唯一地确定所属的输入。那些比图32中示例地示出的机器具有显然更多状态的机器适合于与其它网络组合,例如如在图27a)和b)中示出的。也可能的是,具有延迟的输出的机器,如在【3】中描述的。所有机器都可以被不确定地生成,例如借助随机数发生器。
参考资料
[1]Feng Bao,Yoshihide Igarashi,Break Finite Automata Public Key Crypto-system,ICALP 1995:147-158,1995.
[2]T.L.Booth,Sequential Machines and Automata Theory,John Wiley andSons,1967.
[3]Zongduo Dai,Dingfeng Ye,Kwok-Yan Lam,Weak Invertibility of FiniteAutomata and Cryptoanalysis on FAPKC,Aduances in Cryptology-ASIA-CRYPT′98:227-241,Springer,1998.
[4]W.Harder,B.Peeters,Vorrichtung zum Schutz gegen unauthorisierte Be-nutzung von Software,Patent DE 3914233,1990.
[5]J.E.Hopcroft,J.D.Ullman,Einführung in die Automatentheorie,FormaleSprachen und Komplexittstheorie,4.Auflage,Oldenbourg,2000.
[6]E.Jessen,R.Valk,Rechensysteme,Grundlagen der Modellbildung,Springer,1987.
[7]M.Minsky,Computation:Finite and Infinite Machines,Prentice-Hall,Engle-wood Cliffs,1967.
[8]W.Reisig,Petri-Netze,Eine Einführung,Springer,1982.
[9]R.Rojas,Theorie der neuronalen Netze,Springer,1993.
[10]D.R.Wallace,System and method for cloaking software,US-Patent 6192475,2001.
[11]Sospita,http://www.sospita.com,2002.
[12]Syncrosoft Hard- und Software GmbH,http://www.syncrosoff.com,2003.
[13]Trusted Computing Platform Alliance(TCPA),http://www.trustedcomputing.org,2003.

Claims (21)

1.用于处理数据的方法,其特征在于,Petri网被编码,被写入存储器中,并且被至少一个示例从所述存储器中读取并执行,其中Petri网的转换借助至少一个头从至少一个带读取字符或者字符串和/或在至少一个带中写入字符或者字符串。
2.根据权利要求1的方法,其特征在于,Petri网、头和带构成通用图灵机。
3.根据权利要求1或2的方法,其特征在于,至少一个第二Petri网,特别是具有权利要求1中所述Petri网的特征的至少一个第二Petri网,被编码,被写入存储器,并且被至少一个示例从存储器中读出并且执行,其中每个Petri网的转换可以通过至少一个可选地现有信道发送字符或字符串,所述字符或字符串可以被其它Petri网的转换通过所述信道接收。
4.根据权利要求1至3中任一项的方法,其特征在于,Petri网访问标记表或状态转换表以及可选的至少一个输出表或二者的组合,并且以此根据标记或状态以及可选地根据可选地现有输入求出后继标记或后继状态和可选的至少一个输出。
5.用于实施根据权利要求4的方法的方法,其特征在于,Petri网的转换的接通通过处理器执行,其中所述处理器至少具有一个处理器指令,所述处理器指令将所述标记表或状态表和可选的至少一个输出表或二者的组合作为操作数处理。
6.根据权利要求3的方法,其特征在于,Petri网的合作形成图灵机。
7.根据权利要求3和6之一的方法,其特征在于,程序的至少一部分被翻译为Petri网或Petri网的合作。
8.根据权利要求3至7之一的方法,其特征在于,Petri网通过组合规则实施,其中借助合作的第一和第二Petri网形成除了输出延迟外、关于外部输入/输出行为与所述第一和第二Petri网等效的第三Petri网。
9.除了基于有限自动机的组合的公钥加密方法之外的用于数据处理的方法,特别是与权利要求1至8之一相结合,其特征在于,数据处理的、合作的网络被组合,组合结果被编码、被写入存储器并且被至少一个示例从存储器中读出并且执行,其中组合结果是除了输出延迟外、关于外部输入/输出行为与其组件等效的网络。
10.根据权利要求1至8之一以及权利要求9的方法,其特征在于,所述组件和所述组合结果是Petri网,其中所述组件的转换可以通过可选地现有信道发送和接收字符或字符串。
11.根据权利要求8或10的方法,其特征在于,所述Petri网形成具有可选的多个输入信道和可选的多个输出信道的序列机MΩ,C是信道的有限集合,Δ是有限字母表的有限集合,γ:C->Δ,Ω=(C,Δ,γ)是通信规则,
EΩ={e|e={(c,σ)|σ∈γ(c)((c,σ1)∈e(c,σ2)∈eσ1=σ2)}}∪{φ}
是输入/输出事件的集合,S是状态的有限集合,并且
MΩ:={(S,EΩ,δ,β,s0)|δ:R→Sβ:R→EΩRS×EΩ
({(s,x),y]∈β(cx,σx)∈x(cy,σy)∈y:cx≠cy)s0∈S),
具有B
Figure A2004800112300003C4
C的B是内部同步信道的集合,序列机的组合compB:MΩ n→2被定义为:
comp B : = { ( ( K 1 , . . . , K n ) , K ~ ) |
( K 1 , . . . , K n ) = ( ( S 1 , E Ω , δ 1 , β 1 , s 0 1 ) , . . . , ( S n , E Ω , δ n , β n , s 0 n ) )
Figure A2004800112300004C3
( [ ( s 0 1 , x 1 ) , s 1 ′ ] , . . . , [ ( s 0 n , x n ) , s n ′ ] ) ∈ δ 1 × . . . × δ n
Figure A2004800112300004C5
Figure A2004800112300004C6
Figure A2004800112300004C8
Figure A2004800112300004C9
∃ E ~ Ω ′ = { K ~ ′ | ∃ ( ( x 1 , . . . x n ) , ( y 1 , . . . , y n ) , ( s 1 ′ , . . . , s n ′ ) , x ~ , y ~ ) ∈ T :
K ~ ′ = comp B ( [ ( S 1 , E Ω , δ 1 , β 1 , s 1 ′ ) , . . . , ( S n , E Ω , δ n , β n , s n ′ ) ] ) }
K ~ = ( S ~ , E Ω , δ ~ , β ~ , s 0 ~ )
Figure A2004800112300004C13
Figure A2004800112300004C14
( ( x 1 , . . . , x n ) , ( y 1 , . . . , y n ) , ( s 1 ′ , . . . , s n ′ ) , x ~ , y ~ ) ∈ T }
∪ ∪ ( S ′ ~ , E Ω ′ , δ ′ ~ , β ′ , ~ s 0 ′ ~ ) ∈ M ~ Ω ′ δ ~ ′
( ( x 1 , . . . , x n ) , ( y 1 , . . . , y n ) , ( s 1 ′ , . . . , s n ′ ) , x ~ , y ~ ) ∈ T }
∪ ∪ ( S ′ ~ , E Ω ′ , δ ′ ~ , β ′ , ~ s 0 ′ ~ ) ∈ M ~ Ω ′ δ ~ ′
Figure A2004800112300004C20
12.根据权利要求9的方法,其特征在于,所述数据处理网络通过算法的翻译形成。
13.根据权利要求9至12之一的方法,其特征在于,至少一个组件是加密组件。
14.根据权利要求13的方法,其特征在于,至少一个组件对被压缩的数据解压缩。
15.根据权利要求13或14的方法,其特征在于,组件读取数据并且通过这些数据的改变将对于这些数据的使用不妨碍或较少妨碍的特征或水印加入所述数据中。
16.根据权利要求13的方法,其特征在于,多个输入信道的加密器和组合器被组合为输出信道,其中所述加密器和所述组合器是Petri网,所述加密器将通过所述输入信道接收的数据映射到所述输出信道上,所述组合器的输出是所述加密器的输入。
17.根据权利要求13的方法,其特征在于,解密器和分离器被组合,其中所述解密器或所述分离器是Petri网,并且可以是所述加密器或所述组合器的反转,所述解密器或所述分离器根据权利要求16中所述的方法与组合器或加密器组合,所述分离器将通过所述输入信道接收的数据映射到所述输出信道上,所述解密器的输出是所述分离器的输入。
18.根据权利要求13至17之一的方法,其特征在于,至少一个组件是从被保护地执行的加密函数接收并处理数据的加密组件,其中如果从所述加密函数中没有接收到数据或接收到错误数据,则组合结果不工作或错误地工作。
19.根据权利要求18的方法,其特征在于,在省略所述加密组件或至少一个所述加密组件的情况下实施组合,其中组合结果相对于没有省略而形成的组合结果关于可用性方面至少具有一个限制。
20.用于处理数据的方法,特别是与权利要求1至19之一结合,其特征在于,数据处理的网络或程序从被保护地执行的加密函数接收并处理第二数据,并且如果没有接收到第二数据或接收到错误的第二数据,则所述数据处理网络或所述程序不工作或错误地工作,其中所述加密函数与执行所述数据处理网络或所述程序的装置固定相连。
21.根据权利要求20的方法,其特征在于,超过所述加密函数的函数值的计算的值对于攻击者不可读地或不可改变地储存,并且在另一函数值的继续计算中,所述值影响所述继续计算的结果,其中所述值根据预定规则改变。
CNA2004800112302A 2003-04-25 2004-04-03 数据处理方法 Pending CN1781117A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10319435.5 2003-04-25
DE10319435.5A DE10319435B4 (de) 2003-04-25 2003-04-25 Verfahren zur Verarbeitung von Daten zum Schutz eines Softwareprogramms vor Rekonstruktion

Publications (1)

Publication Number Publication Date
CN1781117A true CN1781117A (zh) 2006-05-31

Family

ID=33154484

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2004800112302A Pending CN1781117A (zh) 2003-04-25 2004-04-03 数据处理方法

Country Status (9)

Country Link
US (6) US9275202B2 (zh)
EP (1) EP1618519A2 (zh)
KR (1) KR20060017593A (zh)
CN (1) CN1781117A (zh)
BR (1) BRPI0409740A (zh)
CA (1) CA2525484A1 (zh)
DE (1) DE10319435B4 (zh)
RU (1) RU2005135987A (zh)
WO (1) WO2004097734A2 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10319435B4 (de) 2003-04-25 2018-07-26 Whitecryption Corporation Verfahren zur Verarbeitung von Daten zum Schutz eines Softwareprogramms vor Rekonstruktion
GB0813142D0 (en) * 2008-07-17 2008-08-27 Glaxo Group Ltd Novel compounds
US9026768B2 (en) * 2009-09-14 2015-05-05 AEMEA Inc. Executing machine instructions comprising input/output pairs of execution nodes
US9152779B2 (en) 2011-01-16 2015-10-06 Michael Stephen Fiske Protecting codes, keys and user credentials with identity and patterns
US10268843B2 (en) 2011-12-06 2019-04-23 AEMEA Inc. Non-deterministic secure active element machine
EP2648125B1 (de) * 2012-03-05 2014-11-19 Steinberg Media Technologies GmbH Verfahren zur Autorisierung eines Programmablaufs
US9584310B2 (en) 2014-03-19 2017-02-28 Nxp B.V. Protecting a white-box implementation against attacks
US9838198B2 (en) * 2014-03-19 2017-12-05 Nxp B.V. Splitting S-boxes in a white-box implementation to resist attacks
US9654279B2 (en) 2014-03-20 2017-05-16 Nxp B.V. Security module for secure function execution on untrusted platform
US9455833B2 (en) 2014-04-28 2016-09-27 Nxp B.V. Behavioral fingerprint in a white-box implementation
EP2940919B1 (en) 2014-04-28 2019-02-20 Nxp B.V. Realizing authorization via incorrect functional behavior of a white-box implementation
US9641337B2 (en) 2014-04-28 2017-05-02 Nxp B.V. Interface compatible approach for gluing white-box implementation to surrounding program
US9338145B2 (en) 2014-04-28 2016-05-10 Nxp B.V. Security patch without changing the key
EP2940677A1 (en) 2014-04-28 2015-11-04 Nxp B.V. Method for including an implicit integrity or authenticity check into a white-box implementation
EP2940920B1 (en) 2014-04-28 2017-03-08 Nxp B.V. Security patch without changing the key
US9380033B2 (en) * 2014-04-28 2016-06-28 Nxp B.V. Implementing use-dependent security settings in a single white-box implementation
US9485226B2 (en) 2014-04-28 2016-11-01 Nxp B.V. Method for including an implicit integrity or authenticity check into a white-box implementation
EP2940918B1 (en) 2014-04-28 2019-07-17 Nxp B.V. Interface compatible approach for gluing white-box implementation to surrounding program
EP2940925B1 (en) 2014-04-28 2017-12-27 Nxp B.V. Implementing use-dependent security settings in a single white-box implementation
US9363244B2 (en) 2014-04-28 2016-06-07 Nxp B.V. Realizing authorization via incorrect functional behavior of a white-box implementation
EP2940917B1 (en) 2014-04-28 2019-02-20 Nxp B.V. Behavioral fingerprint in a white-box implementation
EP2960891B1 (en) 2014-06-24 2019-01-16 Nxp B.V. Method for introducing dependence of white-box implementationon a set of strings
US10412054B2 (en) 2014-06-24 2019-09-10 Nxp B.V. Method for introducing dependence of white-box implementation on a set of strings
US9569639B2 (en) 2014-09-12 2017-02-14 Nxp B.V. Remapping constant points in a white-box implementation
US9639674B2 (en) 2014-12-18 2017-05-02 Nxp B.V. Using single white-box implementation with multiple external encodings
US20160182472A1 (en) 2014-12-19 2016-06-23 Nxp, B.V. Binding White-Box Implementation To Reduced Secure Element
US9819486B2 (en) 2014-12-19 2017-11-14 Nxp B.V. S-box in cryptographic implementation
US9665699B2 (en) 2015-03-13 2017-05-30 Nxp B.V. Implementing padding in a white-box implementation
US9602273B2 (en) 2015-05-06 2017-03-21 Nxp B.V. Implementing key scheduling for white-box DES implementation
US20160350520A1 (en) 2015-05-29 2016-12-01 Nxp, B.V. Diversifying Control Flow of White-Box Implementation
US10505709B2 (en) 2015-06-01 2019-12-10 Nxp B.V. White-box cryptography interleaved lookup tables
US10020932B2 (en) 2015-11-13 2018-07-10 Nxp B.V. Split-and-merge approach to protect against DFA attacks
US10015009B2 (en) 2015-11-25 2018-07-03 Nxp B.V. Protecting white-box feistel network implementation against fault attack
US10171234B2 (en) 2015-12-16 2019-01-01 Nxp B.V. Wide encoding of intermediate values within a white-box implementation
US10223511B2 (en) 2016-03-30 2019-03-05 Nxp B.V. Watermarking input and output of a white-box implementation
US10243937B2 (en) * 2016-07-08 2019-03-26 Nxp B.V. Equality check implemented with secret sharing
US10567159B2 (en) 2017-06-07 2020-02-18 Nxp B.V. CMAC computation using white-box implementations with external encodings

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4328542A (en) * 1979-11-07 1982-05-04 The Boeing Company Secure implementation of transition machine computer
US4866605A (en) * 1984-11-05 1989-09-12 Hitachi, Ltd. System function simulation method and apparatus therefor using Petri net symbols
US4922413A (en) * 1987-03-24 1990-05-01 Center For Innovative Technology Method for concurrent execution of primitive operations by dynamically assigning operations based upon computational marked graph and availability of data
JP2580592B2 (ja) * 1987-04-17 1997-02-12 株式会社日立製作所 データ構造駆動型処理装置とその制御方法
DE3914233C1 (en) 1989-04-29 1990-07-26 Wulf 2054 Geesthacht De Harder Computer program protection device - has generator data output connected with consisting testing stage
US5257363A (en) * 1990-04-09 1993-10-26 Meta Software Corporation Computer-aided generation of programs modelling complex systems using colored petri nets
EP0842471A4 (en) * 1995-07-31 2006-11-08 Hewlett Packard Co METHOD AND APPARATUS FOR MANAGING RESOURCES UNDER THE CONTROL OF A PROTECTED MODULE OR OTHER PROTECTED PROCESSOR
US6192475B1 (en) 1997-03-31 2001-02-20 David R. Wallace System and method for cloaking software
JP4739465B2 (ja) * 1997-06-09 2011-08-03 インタートラスト テクノロジーズ コーポレイション ソフトウェアセキュリティを増強するための混乱化技術
US6334189B1 (en) * 1997-12-05 2001-12-25 Jamama, Llc Use of pseudocode to protect software from unauthorized use
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US6779112B1 (en) * 1999-11-05 2004-08-17 Microsoft Corporation Integrated circuit devices with steganographic authentication, and steganographic authentication methods
US7120699B2 (en) * 2001-09-20 2006-10-10 Ricoh Company, Ltd. Document controlled workflow systems and methods
US7478233B2 (en) * 2002-05-30 2009-01-13 Microsoft Corporation Prevention of software tampering
US7383443B2 (en) * 2002-06-27 2008-06-03 Microsoft Corporation System and method for obfuscating code using instruction replacement scheme
US20040015719A1 (en) * 2002-07-16 2004-01-22 Dae-Hyung Lee Intelligent security engine and intelligent and integrated security system using the same
US7415596B2 (en) 2003-01-24 2008-08-19 Gigafin Networks, Inc. Parser table/production rule table configuration using CAM and SRAM
DE10319435B4 (de) 2003-04-25 2018-07-26 Whitecryption Corporation Verfahren zur Verarbeitung von Daten zum Schutz eines Softwareprogramms vor Rekonstruktion

Also Published As

Publication number Publication date
DE10319435B4 (de) 2018-07-26
US11809530B2 (en) 2023-11-07
US10534897B2 (en) 2020-01-14
RU2005135987A (ru) 2007-05-27
US20170364668A1 (en) 2017-12-21
DE10319435A1 (de) 2004-11-11
WO2004097734A2 (de) 2004-11-11
US20200117775A1 (en) 2020-04-16
US20170024550A1 (en) 2017-01-26
US9946854B2 (en) 2018-04-17
EP1618519A2 (de) 2006-01-25
US11010455B2 (en) 2021-05-18
US20070014394A1 (en) 2007-01-18
US20180239881A1 (en) 2018-08-23
WO2004097734A8 (de) 2005-12-01
CA2525484A1 (en) 2004-11-11
US20210240802A1 (en) 2021-08-05
US9721075B2 (en) 2017-08-01
US9275202B2 (en) 2016-03-01
BRPI0409740A (pt) 2006-05-09
KR20060017593A (ko) 2006-02-24

Similar Documents

Publication Publication Date Title
CN1781117A (zh) 数据处理方法
CN103532707B (zh) 用于确定在保护数据时应用的可编程处理步骤的系统和方法
EP2656266B1 (en) Improvements relating to cryptography using polymorphic code
US8935539B2 (en) System and method for revising boolean and arithmetic operations
CN1242323C (zh) 源程序转换方法和装置
CN101568927B (zh) 混淆计算机程序代码
US20110283115A1 (en) Device and a method for generating software code
CN104919750A (zh) 配置有表格网络的计算设备
CN1413398A (zh) 防止通过分析无意旁生信道信号来提取数据的数据处理方法
Fang et al. Secure function evaluation using an fpga overlay architecture
US8677149B2 (en) Method and system for protecting intellectual property in software
CN105007256A (zh) 用于在非信任平台上执行安全功能的安全模块
CN111538962A (zh) 程序控制流混淆方法、系统、存储介质、云服务器及应用
CN113055153A (zh) 一种基于全同态加密算法的数据加密方法、系统和介质
Song et al. Secure and fast implementation of ARX-Based block ciphers using ASIMD instructions in ARMv8 platforms
AU2021100948A4 (en) Enhancing cyber security using high speed hybrid authentication technique
CN114968206A (zh) 一种编程语言代码动态混淆方法及系统
Kitagawa et al. Obfustopia built on secret-key functional encryption
Fukushima et al. Analysis of program obfuscation schemes with variable encoding technique
CN115310132B (zh) 一种数据身份标识与数据碎片化方法及装置
Abdel-Hamid et al. A tool for automatic watermarking of IP designs
Gàmez Montolio Analysis and applications of orthogonal approaches to simplify Mixed Boolean-Arithmetic expressions
Li et al. Software Protection Technology on Tamper-Proof Hybrid Coded Chaotic Watermarking
Fu et al. Software Protection by Hardware and Obfuscation.
Redwine Software process architecture issues

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1092569

Country of ref document: HK

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20060531

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1092569

Country of ref document: HK