基于可配置密钥的数据混排和加密的制作方法

文档序号:7799236阅读:150来源:国知局
基于可配置密钥的数据混排和加密的制作方法
【专利摘要】本发明的各实施方式总体上涉及一种基于可配置密钥的数据混排和加密。具体地,一种数据混排和加密系统可以包括用于存储密钥的数据存储装置以及用于对输入数据序列进行混排和编码的编码模块。混排和编码可以包括确定n维空间并且用输入数据序列填充n维空间。可以应用准随机函数以对n维空间进行采样,并且可以使用采样作为进入n维空间的索引以确定来自n维空间的输出数据序列。
【专利说明】基于可配置密钥的数据混排和加密

【技术领域】
[0001]本发明的各实施方式总体上涉及信息安全领域。具体地,涉及一种基于可配置密钥的数据混排和加密。

【背景技术】
[0002]尤其鉴于个人越来越愿意向其它方提供他们的保密信息并且比如在云计算系统上的共享数据存储日益普及,数据安全正在变得重要。例如,个人允许在线零售商存储他们的信用卡信息或者同意允许社交媒体站点将他们的信息用于营销或者其它动机并不罕见。为了保护个人,对数据进行匿名化并且在安全数据存储装置中存储数据并不罕见。


【发明内容】

[0003]根据本发明的一个实施例,提供了一种数据混排和加密系统,例如可以包括:数据存储装置,用于存储密钥;以及编码模块,由处理器执行以对输入数据序列进行混排和加密。其中混排和加密可以包括:基于密钥确定η维空间,其中η > O ;用输入数据序列填充η维空间;应用准随机函数以对η维空间进行采样以确定采样;并且使用采样作为进入η维空间的索引以确定来自η维空间的输出数据序列。
[0004]根据本发明的另一实施例,提供了一种对输入数据序列进行编码的方法,例如可以包括:接收输入数据序列;并且对输入数据序列进行混排和加密。其中混排和加密可以包括:确定η维空间,其中η > O ;用输入数据序列填充η维空间;由处理器应用准随机函数以对η维空间进行采样以确定采样;并且使用采样作为进入η维空间的索引以确定来自η维空间的输出数据序列。
[0005]根据本发明的又一实施例,提供了一种包括机器可读指令的非瞬态计算机可读介质,该机器可读指令可以由至少一个处理器可执行以:确定η维空间,其中η>0 ;用输入数据序列填充η维空间;应用准随机函数以对η维空间进行采样以确定采样;并且使用采样作为进入η维空间的索引以确定来自η维空间的输出数据序列。

【专利附图】

【附图说明】
[0006]在以下描述中参照在附图中示出的示例详细描述实施例。
[0007]图1A至图1B图示数据混排和加密系统的示例。
[0008]图1C图示数据混排和加密系统的框图的示例。
[0009]图1D图示数据混排和加密系统在数据存档系统中的示例。
[0010]图2图示用于数据混排和加密的过程的示例。
[0011]图3图示用于数据混排和加密的过程的示例。
[0012]图4图示用于具有填充的数据混排和加密的过程的示例。
[0013]图5图示用于具有填充的数据解混排和解密的过程的示例。
[0014]图6图示用于数据混排和加密的方法的示例。
[0015]图7图示用于具有填充的数据解混排和解密的方法的示例。
[0016]图8图示可以用于方法和系统的计算机系统的示例。
[0017]图9示出如下图的示例,该图图示在可配置参数之间的逆关系。

【具体实施方式】
[0018]出于简化和示例目的,通过主要参照实施例的示例来描述它们的原理。在以下描述中,阐述许多具体细节以便提供实施例的透彻理解。清楚的是可以实现实施例而不限于所有具体细节。同样,可以在各种组合中一起使用实施例。
[0019]根据一个实施例,一种数据混排和加密系统将多维准随机采样用于基于密钥的数据混排以生成加密和混排的输出数据序列。在向数据混排和加密系统提供的输入数据序列中的两个近旁元素可以在作为数据序列从数据混排和加密系统输出的生成的排列中远离。数据混排和加密系统可以动态配置参数以基于用户要求来提供匿名和安全程度。
[0020]数据混排和加密系统同时对输入数据进行混排和加密。加密例如是以如果不能例如用所需函数和/或数据、比如密钥对信息进行解密就不能理解它这样的方式对信息进行编码的过程。混排可以包括混排在输入数据序列中的元素,因此它们按照不同顺序。根据一个实施例,混排在输入数据序列中的连续元素,因此它们在输出数据序列中未在彼此近旁并且被加密,因为不能根据查看混排的输出数据序列来确定输入数据序列。这里描述的数据混排和加密一般称为混排和加密过程,因为它实现输入数据序列的混排和加密二者。然而,根据这里描述的一个或者多个实施例执行的混排和加密过程是实现混排和加密二者的单个过程。相似地,解混排和解密是实现解混排和解密的单个过程。数据混排和加密也可以对整个输入序列进行混排和加密或者将它拆分成可以个别混排和加密的组块。
[0021 ] 混排和加密可以基于密钥。密钥大小可以独立于输入序列的长度。
[0022]数据混排和加密系统可以提供用于多种应用的数据安全和匿名。例如,系统可以用于数据存储、存档或者其中期望数据私密和安全的任何应用。
[0023]图1A至图1B示出可以用于数据混排和加密并且也用于解密和称为解混排的逆混排的数据混排和加密系统100。例如,图1A示出输入数据序列110,数据混排和加密系统100可以对该输入数据序列进行加密和混排以生成既加密又混排的输出数据序列120。可以向数据混排和加密系统100提供可配置参数111以设置加密的序列120的匿名和安全级。图1B示出数据混排和加密系统100可以对输出数据序列进行解密和解混排以重建输入数据序列110。密钥113用于如以下进一步描述的加密和解密过程。密钥113例如是用来对输入数据序列110进行加密和混排并且也是为了对输出数据序列120进行解密和解混排而需要的任何信息。
[0024]图1C示出数据混排和加密系统100的框图。例如,编码模块130可以根据以下描述的过程和方法执行如以下进一步描述的混排/解混排和加密/解密。数据分组块器131可以将输入数据序列HO分割成用于加密和混排的组块。编码配置器132实施可配置参数111以设置用于加密和混排的匿名和安全级。数据存储装置133可以存储用于编码过程的信息、比如可配置参数111和密钥113以及可能为了混排和加密以及解混排和解密而需要的任何其它信息。数据存储装置133可以包括非易失性存储装置并且可以被保护以防止对密钥的未授权访问。数据混排和加密系统100的部件可以包括硬件、软件或者硬件与软件的组合。
[0025]图1D示出在数据存档系统150中使用数据混排和加密系统100的一个实施例。例如,数据存档系统150从可以执行企业应用的企业应用服务器1-η接收数据,这些企业应用生成可能需要存档的数据。数据存档系统150将数据存档在存档服务器151上。数据存档系统150可以包括存档控制器155和存档策略模块156。存档策略模块156实施用于存档的策略。策略可以指示需要对什么数据进行存档和/或策略可以指示什么数据需要在它被存档之前被数据混排和加密系统100加密和混排。如果将对数据进行混排和加密,则存档系统155向数据混排和加密系统100发送数据,然后在存档服务器151中对混排和加密的数据进行存档。存档可以包括在存档服务器中存储数据或者数据的版本。存档控制器155也可以负责恢复存档的数据以及存档。如果将对数据进行恢复,则从存储该数据的存档服务器取回所述数据,然后数据混排和加密系统100可以对它进行解密和解混排并且向数据被恢复到的企业应用服务器发送。在一个实施例中,可以在企业应用服务器1-η中的一个或者多个企业应用服务器中提供数据混排和加密系统100,从而可以在向数据存档系统150发送数据之前对该数据进行加密和混排。
[0026]图2示出数据混排和加密系统100可以执行的对输入数据序列进行加密和混排的示例。图2中所示输入数据序列201是图1的输入数据序列110的示例。在图2中的示例中,输入数据序列201包括按照数值顺序的元素1-8。例如,元素I是整数1,元素2是整数2,等等。在输入数据序列中的元素可以包括其它类型的数据、比如字符串、浮点、二进制数据、数据库记录等。
[0027]在η维空间202中布置输入数据序列,其中η > O。在η维空间中的每个维度可以具有相同长度或者不同长度。维度长度可以是2的幂(例如,2Χ)。在这一示例中,η是4乘2、例如4X2。2是行数并且4是列数。η的值例如是密钥、比如图1A至图1B中所示密钥113。η的值例如是维度长度、比如4X2。
[0028]将输入数据序列布置成η维空间202,并且执行对η维空间的准随机采样以确定准随机采样209。例如图1D中所示编码模块130可以包括准随机函数,该准随机函数可以根据在这一示例中为4X2的密钥生成准随机序列以生成采样209。生成的采样209体现编码模块130提供的混排。
[0029]准随机函数的一个示例是生成van der Corput序列的van der Corput函数。在用基数b表示时通过反转自然数的数位来生成基数b的van der Corput序列,其中b > =
2。van der Corput最初于1935年由荷兰数学家J.G.van der Corput公布。可以使用其他准随机函数。例如,可以使用由J.H.Halton确定的准随机函数。例如可以通过选择基数、比如基数2来生成准随机Halton序列。将在输入数据序列中的每个元素转换成基数2,并且反转元素(例如将1.0反转成0.1)并且转换回到基数10。准随机函数的其它示例是生成Sobol序列或者Niederreiter序列的函数。
[0030]现在进一步描述根据准随机序列生成索引。例如,实施准随机函数、比如以上描述的函数之一的准随机生成器取得索引(i)和维数(d)并且输出在准随机序列中的第i个元素。这一元素是对于每个维度具有通常在O与I之间的值的d维值。假设向准随机生成器的输入是包含共计m个元素的η维空间。在馈送i = O到m-ι和d = η之时调用生成器m次以生成m个η维三元组。然后缩放输出值(在O与I之间的值)以发现确切索引。例如,将在具有长度{4,32,16}的3维空间中的准随机输出{0.25,0.5,0.125}变换成索引{1,16,2}、即{0.25*4,0.5*32,0.125*16}。生成器在给定索引i和维度d、假设保持其它参数恒定时总是生成相同输出值。其它参数由比如准随机生成器类型、比如SoboUHalton或者Niederreiter和用于计算的基数、例如基数2、基数3等事项构成。一些准随机序列也可以取得更多参数用于生成序列。在一个示例中,以基数2使用Sobol或者Niederreiter序列。
[0031]用于对η维空间进行采样的这些准随机函数的性质是根据密钥生成采样209。因此如果密钥已知、在这一示例中为4X2,则每当使用相同准随机函数和相同密钥时可以生成相同采样209。因此,密钥和准随机函数用来生成用于混排和加密过程的采样209,并且相同密钥和相同准随机函数用来生成用于解混排和解密过程的相同采样209。
[0032]除了密钥113之外,使用的准随机序列类型以及它的关联参数可以存储于数据存储装置133中并且用于解密。例如,多个准随机序列存在,每个准随机序列具有它自己的可配置参数集。例如,Sobol序列的生成依赖于方向编号和原始多项式。如果改变这些,贝Ij输出序列变更。因此,可以存储使用的准随机序列类型以及它的关联参数用于解密和解混排。
[0033]使用图2中所示的生成的采样209作为用于为来自η维空间202的输出数据序列210确定元素的坐标(也称为索引)集。例如,将坐标应用于η维空间202以确定用于在输出数据序列210中包括的值。例如,{1,1}是在2维空间202中的X和y坐标。在坐标{1,1}的值是I。在坐标{3,2}的值是7,并且这一过程根据采样209中的每个采样确定用于输出数据序列210的其它值。输出数据序列210可以没有输入数据序列210的在一起的两个元素。对输出数据序列210进行混排和加密。
[0034]图3示出数据混排和加密系统100可执行的解混排和解密过程的示例。向数据混排和加密系统100的一个输入是在图2中生成并且在图3中再次示出的输出数据序列210。另一输入是在这一示例中为4X2的密钥,这些是η维空间的维度长度。
[0035]为了解密和解混排,编码模块130实施的用于混排和加密的准随机函数也应用于密钥以确定采样209。在采样209中的每个坐标用来在η维空间202中放置来自输出数据序列210的对应元素。例如,第一坐标是{1,I}。输出数据序列210的第一元素是1,因此在η维空间210中的坐标{1,1}放置I。对于比如图3中所示输出数据序列210的每个元素重复这一过程以在对应坐标用输出数据序列210的元素填充η维空间202。然后对填充的η维空间202进行线性化以生成输入数据序列201。为了对填充的η维空间202进行线性化,从图2已知原先在η维空间202中放置元素的顺序,并且反转顺序可以用来根据图3中所示填充的η维空间202确定输入数据序列201。
[0036]为了生成数目大得多的序列,可以在任意长度的维度中布置数据。然而在一个实施例中,维度长度应当是2的幂以保证所有索引被准随机序列采样仅一次。
[0037]图4示出填充示例,其中在具有维度长度3X3的η维空间301中布置输入数据序列201。用例如标记为‘X’的填充值、比如默认值填充η维空间301的空坐标。将η维空间301转换成具有如下维度长度的η维空间302,这些维度长度是2的幂,并且用如下填充值填充η维空间302的空坐标,该填充值在这一情况下是最低行和最后列。
[0038]然后,与关于图2示出和描述的内容相似,图1D中所示编码模块130通过将准随机函数应用于密钥来生成采样309。生成的采样309体现混排。使用生成的采样309作为用于为来自η维空间302的输出数据序列310确定元素的坐标集。因此,使用准随机序列对具有如下维度长度的η维空间(例如,302)进行采样,这些维度长度是刚好大于初始创建的η维空间(例如,301)的2的幂。例如η维空间302是4X4,其中4是从3起的2的下一更闻幕。可以使用2的任何幕,它无需是2的下一更闻幕。例如,可以使用8X4空间。在输出数据序列310中丢弃标记为‘X’的任何位置。例如,将采样309的坐标逐行应用于η维空间302以确定用于输出数据序列310的值。然而,在输出序列中未包括表示为‘X’的包含填充值的任何坐标。因此,在采样309的第一行中,未包括在坐标{3,3}、{4,2}、{2,4}中的值。在第二行中,略去{4,4}。在第三行中,略去{3,4}和{4,1},并且在第四行中,略去{4,3}和{1,4}。
[0039]对于略去,3 X 3在输入数据序列的范围以外,例如3 X 3意味着有9个元素,但是输入数据序列201仅有8个元素,因此略去3X3。4X2意味着它在3X3原有维度以外。因此,如果维度中的任何维度大于3或者它大于来自输入数据序列201的元素数目,则略去它。
[0040]对于以上描述的填充,填充在末尾的单元。然而也可以在前部完成填充。例如取代在{3,3}单元中放入X,可以在{1,1}单元中放入X,并且可以用输入数据填充元素中的其余元素。然而,关于已经如何完成填充的信息也需要存储于密钥113中。在一般情况下,除了在更早点中指定的准随机生成信息之外还有在密钥113中存储的用于η维空间的每个维度的三个属性。首先是存储数据的长度;第二是采样的长度(例如,2的幂);并且第三是如何在该维度中完成填充。
[0041]另外,不同填充值图案可以用来进一步保护数据,并且图案存储于密钥113中,因此可以对输出数据序列解混排和解密。例如表1A至表1C示出填充值图案的示例如下:
[0042]
表 IA (8x2) 表 IB (4x4) 表 IC (4><4) Χ1ΧΧ23Χ4 XXl2XXXX Χ5ΧΧ67Χ8 Χ3Χ4XXXX
[0043]
ΧΧ5 61 2 3 4
Χ7Χ85678
[0044]表1A至表1C示出输入数据序列1-8和填充值为X。填充图案可以如期望的一样复杂。存储图案作为密钥113的部分,因此可以根据密钥113确定图案以确定填充值的位置。
[0045]图5示出根据图4中所示填充示例的在输出数据序列310中的解混排和解密过程的示例。输出数据序列310现在是向编码模块130的输入以确定采样309。然后,在这一示例中为3X3的密钥用来解密。3X3是原有η维空间301的维度。将在采样309中的每个坐标应用于在输出数据序列310中的值中的每个值以便将输出数据序列310的值映射到3X3维空间301。例如,{1,1}是在采样309中的第一坐标。{1,1}是在3X3空间中的坐标,因此在3X3维空间301中的{1,1}填充在输出数据序列310中的为I的第一个值。如果坐标未在3X3维空间301中、比如坐标{4,2}和{2,4},或者如果坐标对应于在3X3维空间301中的填充值、比如{3X 3},则丢弃它们。因此,如图5中所示,将在3X3维空间301中放置的来自输出数据序列310的下一个值是5,并且在采样309中的下一坐标是{3,3}。{3,3}对应于如先前根据图4中所示填充而确定的3X3维空间301的填充值,因此在该坐标放置默认值而不是5。因此,略去{3,3},然后略去{4,2}和{2,4},因为这些坐标未在3X3维空间301中。{2,2}对应于在3X3维空间中的坐标,因此在这一坐标放置5。对于在输出数据序列310中的剩余值并且对于在采样309中的剩余坐标重复这一过程。然后,对填充的3X3维空间301进行线性化以确定输入数据序列201。
[0046]取代一次对整个序列进行加密和混排,可以对输入序列的组块执行加密和混排、然后级联以形成输出数据序列。
[0047]例如,假设输入数据序列是1-64。数据分组块器131可以将输入数据序列拆分成8个组块、例如组块C0-C7。例如CO具有值1-8,Cl具有值9-16,等等。比如如在以上描述的混排和加密过程中描述的那样对每个组块分离地进行混排和加密以确定用于每个组块的输出数据序列。可以例如按照顺序C0-C7级联用于组块的输出数据序列以确定输出数据序列。数据存储装置133可以存储用于分组块的信息、比如每个组块的大小和组块数目例如作为用于解混排和解密的密钥113的部分。每个组块的大小可以变化。可以基于可配置参数111、比如如以下描述的安全参数和匿名参数确定组块数目和每个组块的大小。
[0048]系统100可以执行多级分组块。例如,在2级分组块中的第一分组块级,首先对C0-C7进行混排和加密。输出数据序列的示例可以是C3、C7、CO、C2、C6、C4、Cl、C5。然后,在第二分组块级,可以对每个组块进行混排和加密。为了解混排和解密,首先对输出数据序列进行解混排和解密以根据序列C3、C7、C0、C2、C6、C4、C1、C5获得序列C0-C7,然后对每个组块进行解混排和解密。这里可以对用于多级分组块的输入数据多次执行这里描述的组块和混排。
[0049]可以基于可配置参数111、比如安全参数和匿名参数确定组块数目和每个组块的大小。假设输入数据序列是η字节长。假设无约束,可以生成的用于输出数据序列的排列总数是η !。排列是输入数据的混排,因此可以生成的混排的序列数目是η !。在可以使用分组块的特定混排方案之下假设在η !个排列之中的X个排列有可能被生成。排列数目X也可以由于约束而少于η !,这些约束比如是输入数据序列的两个值不能在相互近旁或者输入值必须隔开某个距离。例如定义安全参数为d = Χ/η !。d的值可以是用户输入。
[0050]另一参数是匿名参数。假设输入数据序列是η字节长。如果使用无任何拆分的准随机混排则可能有的排列总数是2(rf,其中f = η。在使用分组块和组合的特定混排方案之下假设在所有η !个排列之中的X个排列有可能被生成。例如定义匿名参数为(2(rf))/X。
[0051]安全参数是Χ/η !,并且匿名参数是/X,其中X是在准随机混排和加密过程中可能的排列总数并且Z = η。安全参数的值在(2(rf))/n!与I之间。最低安全情况是在使用无任何分组块的典型准随机混排时。最高安全情况是在使用分组块并且η !个混排有可能时。这一点的实际可能性依赖于使用的下层准随机函数并且可能不可实现。
[0052] 匿名参数的值也在(2(Η))/η !与I之间。最低情况是在使用组块时,其中所有η !个混排是可能的。最高情况是在使用无任何分组块的典型准随机函数时。有在安全与匿名之间的逆关系,因此可以选择匿名和安全参数的值以在安全与匿名之间平衡。图9示如下图,该图图示在参数之间的逆关系,并且可以在图上选择点以在安全与匿名之间平衡并且确定组块数目。
[0053]不同行业领域(例如金融、保健、媒体等)可以具有对于私密和/或保密的不同要求。默认参数可以被存储和用于那些领域。在给定的领域内的应用也可以具有不同要求、因此也可以在确定参数时返回作用。另外,不同参数可以用于不同服务或者业务关系。例如,服务提供者可以对于钼金客户提供比黄金和白银客户更多的保密或者更多的匿名。
[0054]如图1C中所示,数据混排和加密系统100可以包括编码模块130。编码模块130例如执行编码,该编码包括如这里描述的混排和加密以及解混排和解密。图6图示根据一个实施例的用于包括混排和加密的编码的方法600。图7图示根据一个实施例的用于包括解混排和解密的方法700。方法600和700可以例如由包括编码模块130的系统100执行。方法可以由其它系统执行。
[0055]在方法600的601,系统100接收输入数据序列。输入数据序列可以包括比如在输入数据序列201中示出的值序列。输入数据序列可以是代表值的字节序列。
[0056]在602,系统100确定是否将输入数据序列拆分成组块。例如,编码配置器132可以从用户或者另一系统接收一个或者多个可配置参数113。可配置参数113可以包括比如以上描述的安全参数和/或匿名参数。安全参数可以是如以上描述的d = Χ/η !。匿名参数可以是以上描述的(2(rt))/X。可以在603根据可配置参数113确定组块总数和每个组块的大小用于将输入数据序列拆分成组块。
[0057]在604,确定η维空间。存储η的值作为密钥113的一部分。例如如果η是2X2,则在密钥113中存储2X2。可以随机或者基于其它参数确定η。每个维度的长度应当是2的幂。如果不是,则确定新的维度空间,其中可以将长度改变成2的更高幂。例如,如果将3X3空间改变成如图4和图5中所示具有填充的4X4空间。可以在数据存储装置133中存储密钥以及可以对于每个组块相同或者不同的组块数目和每个组块大小。也可以在604执行比如以上描述的填充。可以填充在η维空间中的空单元。在比如图4中描述的一个示例中,将η维空间转换成具有如下维度长度的η维空间,这些维度长度是2的幂,并且向空单元添加填充值。可以在比如以上描述的图案中添加填充值。可以对于η维空间的每个维度为密钥113存储三个属性、比如存储数据的长度、采样的长度(例如,2的幂)和如何在该维度中完成填充。
[0058]在605,用例如如图2和图4中所示输入数据序列的值填充η维空间。如果将输入数据序列拆分成组块,则将用于每个组块的值填充到它们自己的η维空间中。
[0059]在606,将准随机函数应用于填充的η维空间以根据η维空间的准随机采样生成采样。存储指定准随机采样的所有参数作为密钥113的部分。如果将输入数据序列拆分成组块,则将准随机函数应用于用于每个组块的填充的η维空间。
[0060]在607,使用采样作为进入η维空间的索引以确定输出数据序列。例如,如图2和图4中所示,采样是坐标,在η维空间中的坐标的值形成输出数据序列。如果对输入数据序列进行分组块,则可以对于每个组块确定输出数据序列,并且可以级联用于组块的输出数据序列以确定最终输出数据序列。
[0061]输出数据序列可以满足来自输入数据序列的两个元素在输出数据序列中未在彼此近旁这样的约束。也可以在604执行多级混排和加密。例如假设将执行2级混排。可以在组块级对组块进行混排和加密。例如,从8个组块C0-C7开始。CO、CL...C7是输入数据序列。通过以上描述的过程对组块进行混排和加密以获得输出数据序列、比如C3、C7、CO、C2、C6、C4、C1、C5。然后,可以在每个组块内完成混排。可以执行任意数目级混排。
[0062]图7图示用于包括解混排和解密的编码的方法700。在701,接收输出数据序列以对它进行解混排和解密以生成输入数据序列。也确定、比如从存储装置取回密钥。如果输入数据序列被分组块,则也确定、比如从存储装置取回组块数目和每个组块的大小。
[0063]在702,对输入数据序列是否如以上关于多级混排描述的那样被拆分成组块并且混排和加密进行确定。如果是,则对组块进行解密和解混排,因此它们在703按照正确顺序。例如,如以上描述的那样,输入数据序列可以包括组块C0-C7,这些组块通过混排和加密过程被混排成不同顺序、比如C3、C7、CO、C2、C6、C4、Cl、C5。在703,基于在密钥中的信息将组块解混排和解密成它们的初始顺序C0-C7。
[0064]在704,基于密钥生成η维空间。例如,密钥指示用于每个维度的长度、比如2X2或者3X3。如果输入数据序列被分组块,则为每个组块生成η维空间。在705,使用来自密钥的准随机函数属性根据准随机函数对η维空间进行采样以生成采样、比如图3和图5中所示采样209或者309。如果输入数据序列被分组块,则为每个组块生成采样。
[0065]在706,例如通过使用采样作为索引将输出数据序列变换成输入数据序列以用来自比如图3和图5中所示输出数据序列的值填充η维空间。如果输入数据序列被分组块,则来自每个组块的值被填充到它们的对应η维空间和它们的对应采样。在密钥中的信息可以指示填充是否被完成用于加密和混排。如果填充被完成,则根据密钥确定填充的值位置,因此向在比如图5中描述的η维空间中的正确单元中填充来自输出数据序列的值。
[0066]在707,对在填充的η维空间中的值进行线性化以生成输入数据序列。如果将输入数据序列拆分成组块,则将用于每个组块的输出数据序列变换成输入数据序列并且可以级联以形成输入数据序列。如果执行多级分组块以及混排和加密,则首先比如在702和703描述的那样将输出数据序列C3、C7、CO、C2、C6、C4、Cl、C5解混排和解密成C0-C7,然后可以比如在704-707描述的那样对每个组块C0-C7进行解混排和解密以确定输入数据序列。以上未描述在702和703将组块解混排和解码成初始序列C0-C7的步骤,但是可以与在704-707描述的步骤相似。
[0067]图8示出可以与这里描述的实施例和示例使用的计算机系统800。计算机系统800包括可以在服务器或者另一计算机系统中的部件。计算机系统800可以通过一个或者多个处理器或者其它硬件处理单元执行这里描述的方法、功能和其它过程。可以天线这些方法、功能和其它过程为在计算机可读介质上存储的机器可读指令,该计算机可读介质可以是非瞬态、比如硬件存储设备(例如,RAM (随机存取存储器)、R0M(只读存储器)、EPROM (可擦除可编程ROM)、EEPROM(电可擦除可编程ROM)、硬驱动和闪存)。
[0068]计算机系统800包括可以实施或者执行机器可读指令的至少一个处理器802,这些机器可读指令执行这里描述的方法、功能和其它过程中的一些或者所有方法、功能和其它过程。通过通信总线808传达来自处理器802的命令和数据。计算机系统800也包括主存储器806、比如随机存取存储器(RAM),其中用于处理器802的机器可读指令和数据可以在运行时间期间驻留,并且包括次数据存储装置807,该次数据存储装置可以是非易失性并且存储机器可读指令和数据。例如用于数据混排和加密系统100的机器可读指令可以在运行时间期间在存储器806中驻留。存储器806和次数据存储装置807是计算机可读介质的示例。
[0069]计算机系统800可以包括I/O设备810、比如键盘、鼠标、显示器等。例如I/O设备810包括用于显示挖掘(drill down)视图和这里描述的其它信息的显示器。计算机系统800可以包括用于连接到网络的网络接口 812。可以在计算机系统800中添加或者替换其它已知电子部件。也可以在分布式计算环境、比如云系统中实施数据混排和加密系统100。
[0070]尽管已经参照示例描述实施例,但是可以进行对描述的实施例的各种修改而未脱离要求保护的实施例的范围。
【权利要求】
1.一种数据混排和加密系统,包括: 数据存储装置,用于存储密钥;以及 编码模块,由处理器执行以对输入数据序列进行混排和加密,其中所述混排和加密包括: 基于所述密钥确定η维空间,其中η > O ; 用所述输入数据序列填充所述η维空间; 应用准随机函数以对所述η维空间进行采样以确定采样;并且 使用所述采样作为进入所述η维空间的索引以确定来自所述η维空间的输出数据序列。
2.根据权利要求1所述的数据混排和加密系统,包括: 数据分组块器,用于确定所述输入数据序列的组块;并且 所述编码模块用于 通过对所述组块中的每个组块进行混排和加密以确定用于每个组块的输出数据序列并且级联用于所述组块的所述输出数据序列以确定所述输出数据序列来对所述输入数据序列进行混排和加密。
3.根据权利要求2所述的数据混排和加密系统,包括: 编码配置器,用于基于安全参数和匿名参数中的至少一个参数确定所述组块的数目和每个组块的大小。
4.根据权利要求3所述的数据混排和加密系统,其中接收所述安全参数和所述匿名参数中的至少一个参数作为用户输入,并且基于级联的所述输出数据序列的可操作用于在满足至少一个约束之时由所述编码模块生成的期望的排列的总数确定所述安全参数和所述匿名参数中的至少一个参数。
5.根据权利要求1所述的数据混排和加密系统,其中所述编码模块用于基于所述密钥对所述输出数据序列进行解混排和解密。
6.根据权利要求5所述的数据混排和加密系统,其中所述编码模块用于通过将所述准随机函数应用于所述密钥以确定所述采样、基于所述采样用来自所述输出数据序列的值填充所述η维空间并且对在所述η维空间中的所述值进行线性化以确定所述输入数据序列来解混排和解密。
7.根据权利要求1所述的数据混排和加密系统,其中为了用所述输入数据序列填充所述η维空间,所述编码模块用于在所述η维空间中包括填充的值并且存储描述所述填充的值在所述η维空间中的位置的信息作为所述密钥的部分。
8.根据权利要求7所述的数据混排和加密系统,其中所述填充的值的所述位置是图案。
9.根据权利要求7所述的数据混排和加密系统,其中所述编码模块用于通过将所述准随机函数应用于所述密钥以确定所述采样、基于所述采样用来自所述输出数据序列的值填充所述η维空间并且对在所述η维空间中的所述值进行线性化以确定所述输入数据序列来使用所述密钥解混排和解密,其中为了填充用于所述解混排和所述解密的所述η维空间,所述编码模块用于基于在所述密钥中的描述所述填充的值的所述位置的所述信息确定在来自所述混排和所述加密的所述η维空间中填充的所述值中的任何值是否为填充的值,并且如果所述值中的任何值是填充的值,则在所述解混排和所述解密期间执行所述η维空间的所述填充时略去与所述填充的值对应的所述采样。
10.根据权利要求1所述的数据混排和加密系统,其中所述密钥包括标识由所述准随机函数生成的准随机序列的类型和用于所述准随机序列的所述类型的关联参数的信息,其中所述编码模块用于基于所述密钥对所述输出数据序列进行解混排和解密。
11.一种对输入数据序列进行编码的方法,包括: 接收输入数据序列;并且 对所述输入数据序列进行混排和加密,其中所述混排和加密包括: 确定η维空间,其中η > O ; 用所述输入数据序列填充所述η维空间; 由处理器应用准随机函数以对所述η维空间进行采样以确定采样;并且 使用所述采样作为进入所述η维空间的索引以确定来自所述η维空间的输出数据序列。
12.根据权利要求11所述的方法,包括: 确定所述输入数据序列的组块;并且 所述输入数据序列的所述混排和加密包括:对所述组块中的每个组块进行混排和加密以确定用于每个组块的输出数据序列;并且 级联用于所述组块的所述输出数据序列以确定所述输出数据序列。
13.根据权利要求12所述的方法,其中基于安全参数和匿名参数确定所述组块的数目和每个组块的大小。
14.根据权利要求13所述的方法,其中基于级联的所述输出数据序列的可操作用于在满足至少一个约束之时通过所述编码而生成的期望的排列的总数确定所述安全参数和所述匿名参数中的至少一个参数。
15.根据权利要求12所述的方法,包括: 在所述对所述组块中的每个组块进行混排和加密以确定用于每个组块的所述输出数据序列之前对所有所述组块进行混排和加密以确定组块的输出集合。
16.根据权利要求11所述的方法,包括: 用填充的值填充所述η维空间,其中存储描述用于所述填充的值在所述η维空间中的位置的信息作为将用于对所述输出数据序列进行解混排和解密的密钥的部分。
17.根据权利要求16所述的方法,其中所述填充包括增加所述η维空间,其中将所述维度的长度增加至2的更高幂。
18.根据权利要求11所述的方法,包括: 基于密钥对对所述输出数据序列进行解混排和解密,其中所述密钥包括用于所述η维空间的η值,并且所述解混排和所述解密包括: 将所述准随机函数应用于所述输出数据序列以确定所述采样; 基于所述采样用来自所述输出数据序列的值填充所述η维空间;并且 对在所述η维空间中的所述值进行线性化以确定所述输入数据序列。
19.根据权利要求18所述的方法,其中所述基于所述采样用来自所述输出数据序列的所述值填充所述η维空间包括:基于在所述密钥中的描述任何填充的值在所述η维空间中的位置的信息确定在来自所述混排和所述加密的所述η维空间中填充的所述值中的任何值是否为填充的值;并且如果所述值中的任何值是填充的值,则在所述解混排和所述解密期间执行所述η维空间的所述填充时略去与所述填充的值对应的所述采样。
20.一种包括机器可读指令的非瞬态计算机可读介质,所述机器可读指令由至少一个处理器可执行以: 确定η维空间,其中η > O ; 用输入数据序列填充所述η维空间; 应用准随机函数以对所述η维空间进行采样以确定采样;并且 使用所述采样作为进入所述η维空间的索引以确定来自所述η维空间的输出数据序列。
【文档编号】H04L9/20GK104052593SQ201410099030
【公开日】2014年9月17日 申请日期:2014年3月14日 优先权日:2013年3月15日
【发明者】V·阿加沃尔, S·保罗, A·科姆, A·萨克斯纳 申请人:埃森哲环球服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1