專利名稱:生成混淆數(shù)據(jù)的制作方法
技術(shù)領(lǐng)域:
本說明書涉及生成混淆(obfuscated)數(shù)據(jù)。
背景技術(shù):
在許多公司中,軟件開發(fā)人員在生產(chǎn)環(huán)境以外(例如,在處理實(shí)際客戶數(shù)據(jù)的環(huán)境中)工作,而且出于安全原因,他們不能訪問生產(chǎn)數(shù)據(jù)。然而,為了確保他們的應(yīng)用程序?qū)⒂蒙a(chǎn)數(shù)據(jù)正確運(yùn)行,在展現(xiàn)生產(chǎn)數(shù)據(jù)的某些特征的開發(fā)和測(cè)試期間,他們可能需要實(shí)際的測(cè)試數(shù)據(jù)。為了提供這樣的實(shí)際測(cè)試數(shù)據(jù),可以混淆輸入生產(chǎn)數(shù)據(jù)集來(lái)確保沒有遺留敏感信息,而且可以存儲(chǔ)混淆數(shù)據(jù)從而作為測(cè)試數(shù)據(jù)使用。取決于項(xiàng)目和開發(fā)人員的需要、 組織的隱私政策、甚至是使用混淆數(shù)據(jù)的國(guó)家的法律,對(duì)于混淆數(shù)據(jù)的需求可能差異很大。 例如,數(shù)據(jù)混淆可能涉及含替換或改變個(gè)人信息,諸如姓名、地址、生日、社會(huì)保險(xiǎn)號(hào)碼、以及信用卡和銀行賬戶號(hào)碼。
發(fā)明內(nèi)容
在一個(gè)方面中,一般而言,用于混淆數(shù)據(jù)的方法包括從數(shù)據(jù)源讀取在多個(gè)記錄的一個(gè)或更多個(gè)字段中出現(xiàn)的值;存儲(chǔ)密鑰值;對(duì)多個(gè)記錄中的每一個(gè),用密鑰值在所述記錄的給定的字段中生成混淆值來(lái)替代原始值,使得該混淆值取決于密鑰值并且確定地與原始值相關(guān);以及在數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)包括記錄的混淆數(shù)據(jù)的集合,所述記錄包括混淆值。各方面可以包括一個(gè)或更多個(gè)下述特性。所述方法進(jìn)一步包括存儲(chǔ)簡(jiǎn)檔信息,所述簡(jiǎn)檔信息包括至少一個(gè)字段的統(tǒng)計(jì)數(shù)據(jù)特征值。用所述密鑰值和為給定字段存儲(chǔ)的簡(jiǎn)檔信息生成所述混淆值。所述混淆值以基于給定字段的所存儲(chǔ)的簡(jiǎn)檔信息特征值中的統(tǒng)計(jì)數(shù)據(jù)來(lái)決定的頻率,出現(xiàn)在混淆數(shù)據(jù)集合的給定字段中。所述混淆值通過使用原始值和密鑰作為對(duì)生成索引值的函數(shù)的輸入、并使用所述索引值在預(yù)定的混淆值集中查找混淆值而生成所述混淆值。所述預(yù)定的混淆值集作為查找表而存儲(chǔ),其中每個(gè)混淆值對(duì)應(yīng)于一個(gè)或更多個(gè)索引值。一范圍內(nèi)的多個(gè)索引值對(duì)應(yīng)于在預(yù)定的混淆值集中的相同的混淆值。所述范圍的大小基于給定字段的所存儲(chǔ)的簡(jiǎn)檔信息特征值的統(tǒng)計(jì)數(shù)據(jù)。用所述密鑰值生成混淆值來(lái)替代所述記錄的給定字段中的原始值包括用確定函數(shù)結(jié)合原始值和密鑰來(lái)產(chǎn)生用于選擇混淆值的選擇值。
用確定的映射,將所述選擇值映射到混淆值。選擇混淆值的值域包括來(lái)自數(shù)據(jù)源的記錄的給定字段中的多個(gè)原始值。一個(gè)或更多個(gè)原始值不包括在值域內(nèi)。在值域內(nèi)的一個(gè)或更多個(gè)值不包括在原始值內(nèi)。所述確定函數(shù)用密鑰通過加密方式阻止從混淆值中恢復(fù)原始值。所述確定函數(shù)為不同的密鑰值提供選擇值相對(duì)連續(xù)原始值的不同序列。針對(duì)密鑰的第一值對(duì)連續(xù)原始值的選擇值的第一序列,是不可從針對(duì)密鑰的第二值對(duì)連續(xù)原始值的選擇值的第二序列中預(yù)測(cè)的。用密鑰值生成混淆值來(lái)替代記錄的給定字段中的原始值包括確定選擇值是否對(duì)應(yīng)于有效混淆值,并且如果不是,則重復(fù)地用確定函數(shù)將選擇值和密鑰結(jié)合起來(lái)產(chǎn)生附加選擇值,直到附加選擇值對(duì)應(yīng)于有效混淆值。有效混淆值由預(yù)定位數(shù)組成。所述方法進(jìn)一步包括將來(lái)自數(shù)據(jù)源的記錄劃分為多個(gè)記錄集,并且,用不同計(jì)算資源并行地在不同記錄集的記錄中用所生成的混淆值替代給定字段中的原始值。包括混淆數(shù)據(jù)集合中的混淆值的至少第一記錄包括至少一個(gè)沒有被混淆值替代的原始值。所述方法進(jìn)一步包括對(duì)于原始值出現(xiàn)的多個(gè)記錄,基于原始值是否一致地被相同的混淆值替代,確定是否使用密鑰值用混淆值替代第一記錄中的原始值。在另一個(gè)方面中,一般而言,用于混淆數(shù)據(jù)的系統(tǒng)包括提供在一個(gè)或更多個(gè)字段中具有值的記錄的數(shù)據(jù)源;數(shù)據(jù)存儲(chǔ)系統(tǒng);以及一個(gè)或更多個(gè)連接到數(shù)據(jù)存儲(chǔ)系統(tǒng)的處理器。所述一個(gè)或更多個(gè)處理器提供執(zhí)行環(huán)境來(lái)讀取從數(shù)據(jù)源讀取在多個(gè)記錄的一個(gè)或更多個(gè)字段中出現(xiàn)的值;存儲(chǔ)密鑰值;對(duì)多個(gè)記錄中的每一個(gè),用密鑰值生成混淆值來(lái)替代記錄的給定字段中的原始值,使得所述混淆值取決于密鑰值并且確定地與原始值相關(guān);以及在數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)包括記錄的混淆數(shù)據(jù)集合,所述記錄包括混淆值。在另一個(gè)方面中,一般而言,用于混淆數(shù)據(jù)的系統(tǒng)包括提供在一個(gè)或更多個(gè)字段中具有值的記錄的數(shù)據(jù)源;數(shù)據(jù)存儲(chǔ)系統(tǒng);以及從數(shù)據(jù)源讀取在多個(gè)記錄的一個(gè)或更多個(gè)字段中出現(xiàn)的值的裝置;對(duì)多個(gè)記錄中的每一個(gè),用密鑰值生成混淆值來(lái)替代記錄的給定字段中的原始值,使得所述混淆值取決于密鑰值并且確定地與原始值相關(guān)的裝置;以及在數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)包括記錄的混淆數(shù)據(jù)集合的裝置,所述記錄包括混淆值。在另一個(gè)方面中,一般而言,計(jì)算機(jī)可讀介質(zhì)存儲(chǔ)用于混淆數(shù)據(jù)的計(jì)算機(jī)程序。所述計(jì)算機(jī)程序包括用于使得計(jì)算機(jī)執(zhí)行以下步驟的指令從數(shù)據(jù)源讀取在多個(gè)記錄的一個(gè)或更多個(gè)字段中出現(xiàn)的值;存儲(chǔ)密鑰值;對(duì)多個(gè)記錄中的每一個(gè),用密鑰值生成混淆值來(lái)替代記錄的給定字段中的原始值,使得所述混淆值取決于密鑰值并且確定地與原始值相關(guān);以及在數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)包括記錄的混淆數(shù)據(jù)集合,所述記錄包括混淆值。各方面可以擁有一個(gè)或更多個(gè)下述優(yōu)勢(shì)。由于在混淆值和原始實(shí)際值之間有確定的關(guān)系,因此,在混淆處理期間,可以維持引用完整性(referential integrity),使得混淆數(shù)據(jù)滿足與生產(chǎn)數(shù)據(jù)相同的引用完整性限制條件?;煜幚硪部梢源_保對(duì)混淆數(shù)據(jù)執(zhí)行的某些操作維持某些特征,諸如在“聯(lián)合” 操作中對(duì)于每個(gè)密鑰的值的數(shù)目。由于給定的混淆值和對(duì)應(yīng)的原始值之間的確定關(guān)系是存
5儲(chǔ)的密鑰值的函數(shù),而且不取決于其它混淆值,因此,所述混淆可以并行地在數(shù)據(jù)集的不同部分中執(zhí)行,同時(shí)仍然維持這些部分之間的關(guān)系。所述混淆處理可以阻止未授權(quán)方對(duì)混淆數(shù)據(jù)進(jìn)行反向工程,并防止從生產(chǎn)數(shù)據(jù)中檢索原始值。諸如記錄格式、可能值的范圍、統(tǒng)計(jì)特征和混淆數(shù)據(jù)的一般簡(jiǎn)檔的特征可以與原始數(shù)據(jù)盡可能相近地匹配。例如,由于信用卡號(hào)碼使用校驗(yàn)數(shù),因此混淆數(shù)據(jù)對(duì)于校驗(yàn)數(shù)也可能有正確的計(jì)算值。如果原始數(shù)據(jù)有拼寫錯(cuò)誤和不一致的地方,則混淆數(shù)據(jù)可以有相同或相似種類的不規(guī)則來(lái)測(cè)試錯(cuò)誤處理。對(duì)于諸如姓名(例如,名字和姓氏)和地址的值,特定值在混淆數(shù)據(jù)中的頻率可以反映它們?cè)谏a(chǎn)數(shù)據(jù)中的頻率。本發(fā)明的一個(gè)或更多個(gè)實(shí)施例的細(xì)節(jié)在以下附圖和說明中詳細(xì)解釋。本發(fā)明的其它特性、目的和優(yōu)勢(shì)將通過說明書和附圖、以及權(quán)利要求而顯而易見。
圖1為用于執(zhí)行基于圖形(graph)的計(jì)算的系統(tǒng)的框圖;圖2為示范性數(shù)據(jù)混淆過程的流程圖;圖3為數(shù)據(jù)混淆過程的確定映射的示意圖;圖4為數(shù)據(jù)混淆的示范性數(shù)據(jù)流圖;圖5為示范性查找表;圖6為偽隨機(jī)置換(permutation)示例的表。圖7為用于生成有效混淆值的過程實(shí)例的表。
具體實(shí)施例方式參照?qǐng)D1,用混淆數(shù)據(jù)來(lái)開發(fā)程序的系統(tǒng)100包括數(shù)據(jù)源102,其可以包括一個(gè)或更多個(gè)數(shù)據(jù)源,諸如存儲(chǔ)設(shè)備或者在線數(shù)據(jù)流的連接點(diǎn),其中的每一個(gè)可以存儲(chǔ)多個(gè)存儲(chǔ)格式中的任一格式的數(shù)據(jù)(例如,數(shù)據(jù)庫(kù)表、電子表格文件、平面文本(flat text)文件、或者由大型機(jī)使用的本機(jī)(native)格式)。用于生成混淆數(shù)據(jù)的執(zhí)行環(huán)境104包括數(shù)據(jù)建檔模塊(data profiling module) 106和數(shù)據(jù)混淆模塊112。所述執(zhí)行環(huán)境104可以在適當(dāng)?shù)牟僮飨到y(tǒng)(諸如UNIX操作系統(tǒng))的控制下以一個(gè)或更多個(gè)通用計(jì)算機(jī)為主機(jī)。例如,所述執(zhí)行環(huán)境104可以包括多節(jié)點(diǎn)并行計(jì)算環(huán)境,其包括使用多個(gè)中央處理單元(CPU)的計(jì)算機(jī)系統(tǒng)的配置,所述配置為本地的(例如,諸如SMP計(jì)算機(jī)的多處理器系統(tǒng)),或本地分布式的(例如,耦合為集群或MPP的多個(gè)處理器),或遠(yuǎn)程分布式的(例如,通過LAN或WAN 網(wǎng)絡(luò)耦合的多個(gè)處理器),或其任一組合。數(shù)據(jù)建檔模塊106從數(shù)據(jù)源102讀取數(shù)據(jù),并存儲(chǔ)數(shù)據(jù)源102中出現(xiàn)的描述數(shù)據(jù)值的各種特征的簡(jiǎn)檔信息。提供數(shù)據(jù)源102的存儲(chǔ)設(shè)備可以是執(zhí)行環(huán)境104本地的,例如, 存儲(chǔ)在連接到運(yùn)行執(zhí)行環(huán)境104的計(jì)算機(jī)的存儲(chǔ)介質(zhì)上;或者可以是執(zhí)行環(huán)境104遠(yuǎn)程的, 例如,以遠(yuǎn)程系統(tǒng)(例如,大型機(jī)110)為主機(jī),通過本地或廣域數(shù)據(jù)網(wǎng)絡(luò)與運(yùn)行執(zhí)行環(huán)境 104的計(jì)算機(jī)進(jìn)行通信。數(shù)據(jù)混淆模塊112使用數(shù)據(jù)建檔模塊106產(chǎn)生的簡(jiǎn)檔信息來(lái)生成存儲(chǔ)于執(zhí)行環(huán)境 104可訪問的數(shù)據(jù)存儲(chǔ)系統(tǒng)116中的混淆數(shù)據(jù)114的集合。數(shù)據(jù)存儲(chǔ)系統(tǒng)116也可以被開發(fā)環(huán)境118訪問,開發(fā)人員120能夠在開發(fā)環(huán)境118中用混淆數(shù)據(jù)114開發(fā)和測(cè)試程序。但是,通過保持開發(fā)人員120無(wú)法訪問數(shù)據(jù)源102中的原始生產(chǎn)數(shù)據(jù),可以保持所述原始生產(chǎn)數(shù)據(jù)的安全。在某些實(shí)現(xiàn)方式中,開發(fā)環(huán)境118是用于將應(yīng)用開發(fā)為數(shù)據(jù)流圖的系統(tǒng),所述數(shù)據(jù)流圖包括在頂點(diǎn)之間通過定向鏈接(表示工作元素的流)連接的頂點(diǎn)(組件或數(shù)據(jù)集)。例如,在題為“Managing Parameters for Graph-Based Applications,,的美國(guó)公開號(hào)2007/0011668(通過引用合并至此)中,更詳細(xì)地描述了這樣的環(huán)境。數(shù)據(jù)建檔模塊106可以根據(jù)包括不同數(shù)據(jù)庫(kù)系統(tǒng)格式的多種類型的系統(tǒng)中建檔數(shù)據(jù)。數(shù)據(jù)可以組織為有各自字段(也稱為“屬性”或“列”)的值(包括可能的空值)的記錄。簡(jiǎn)檔信息可以組織為提供對(duì)于不同的字段的獨(dú)立的簡(jiǎn)檔(稱為“字段簡(jiǎn)檔”),其描述在這些字段內(nèi)出現(xiàn)的值。當(dāng)?shù)谝淮螐臄?shù)據(jù)源讀取數(shù)據(jù)時(shí),數(shù)據(jù)建檔模塊106通常以關(guān)于該數(shù)據(jù)源中的記錄的某些初始格式信息開始。(注意在某些環(huán)境中,最初甚至可能不知道數(shù)據(jù)源的記錄結(jié)構(gòu),而是可能在分析數(shù)據(jù)源之后才得以確定。)關(guān)于記錄的初始信息可以包括表示唯一值的比特?cái)?shù)、在記錄內(nèi)的字段的順序、以及用比特表示的值的種類(例如,字符串、有符號(hào)/無(wú)符號(hào)的整數(shù))。當(dāng)數(shù)據(jù)建檔模塊106從數(shù)據(jù)源中讀取記錄時(shí),它計(jì)算反映給定字段中的值的統(tǒng)計(jì)數(shù)據(jù)和其它描述性信息(例如,特定值的頻率)。數(shù)據(jù)建檔模塊 106接著以字段簡(jiǎn)檔的形式存儲(chǔ)這些統(tǒng)計(jì)數(shù)據(jù)和描述性信息,以用于由數(shù)據(jù)混淆模塊112 訪問。簡(jiǎn)檔信息也可以包括與在數(shù)據(jù)源102中的記錄的多個(gè)字段相關(guān)聯(lián)的信息,諸如記錄的總數(shù)量以及有效或者無(wú)效記錄的總數(shù)量。例如,在題為“Data !Profiling”的美國(guó)公開號(hào) 2005/0114369(通過引用合并至此)中描述了用于對(duì)數(shù)據(jù)源的字段進(jìn)行建檔的處理的一種說明。圖2示出示范性數(shù)據(jù)混淆過程200的流程圖。步驟200包括從數(shù)據(jù)源讀取QlO) 在多個(gè)記錄的一個(gè)或更多個(gè)字段中出現(xiàn)的值。可選地,存儲(chǔ)包括至少一個(gè)字段的統(tǒng)計(jì)數(shù)據(jù)特征值的簡(jiǎn)檔信息(例如,由對(duì)應(yīng)于簡(jiǎn)檔信息中的統(tǒng)計(jì)數(shù)據(jù)的索引值范圍確定的混淆數(shù)據(jù)的表格,如下面更詳細(xì)地描述的)。過程200包括存儲(chǔ)(220)密鑰值,其由加密技術(shù)用于提供安全性以確保所述混淆不會(huì)輕易反轉(zhuǎn)。對(duì)多個(gè)記錄中的每一個(gè),過程200用密鑰值生成 (230)混淆值來(lái)替代記錄的給定字段中的原始值,使得所述混淆值取決于密鑰值并且確定地與原始值相關(guān)。如果使用存儲(chǔ)的簡(jiǎn)檔信息,則混淆值以基于存儲(chǔ)的簡(jiǎn)檔信息確定的頻率出現(xiàn)在混淆數(shù)據(jù)集合中。過程200包括在數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)(MO)包括記錄的混淆數(shù)據(jù)集合,所述記錄包括混淆值。在某些實(shí)現(xiàn)方式中,每當(dāng)新數(shù)據(jù)源可用或者現(xiàn)有源接收到新記錄時(shí),重復(fù)數(shù)據(jù)混淆過程200。所述過程可以被用戶調(diào)用,或者以重復(fù)的間隔或響應(yīng)于某些事件而自動(dòng)調(diào)用。在某些混淆方法中,混淆實(shí)際生產(chǎn)數(shù)據(jù)的能力可能足夠;然而在另一些方法中,擁有反轉(zhuǎn)混淆過程以及將混淆值匹配回到實(shí)際值的能力也可能是有用的。在某些方法中,例如在上述過程200中,能夠例如使用存儲(chǔ)的密鑰和加密技術(shù)而確?;煜^程不能被反轉(zhuǎn)而獲得實(shí)際值是有用的,如下面更詳細(xì)地描述的。在某些情況下,隨著時(shí)間的推移進(jìn)行混淆值的一致分配可能是有用的。例如,包括對(duì)應(yīng)于與特定客戶有關(guān)的每個(gè)不同交易的記錄的交易數(shù)據(jù)可能需要匹配預(yù)先混淆的客戶 ID,使得有給定的實(shí)際客戶ID的所有交易被分配相同的混淆客戶ID。作為另一個(gè)例子,來(lái)自同一戶人家的數(shù)據(jù)庫(kù)中的客戶可能共享同一個(gè)地址??赡芷谕_保這些客戶的混淆數(shù)據(jù)記錄有相同的混淆地址。如果人們需要閱讀和理解混淆數(shù)據(jù),則可能期望用選自預(yù)定的可識(shí)別值集中的值替代實(shí)際值,而不是簡(jiǎn)單地用任意生成的值替代這些值。有多種方式來(lái)確保給定值和對(duì)應(yīng)混淆值之間的一致分配。在一種方法中,第一次遇到給定值,從預(yù)定集中隨機(jī)選擇混淆值并將其映射到這個(gè)給定值。接著,例如在映射數(shù)據(jù)結(jié)構(gòu)中相互關(guān)聯(lián)地存儲(chǔ)兩個(gè)值。對(duì)預(yù)先存儲(chǔ)在映射數(shù)據(jù)結(jié)構(gòu)中的給定值的全部后續(xù)的出現(xiàn),從數(shù)據(jù)結(jié)構(gòu)中檢索到相同的對(duì)應(yīng)混淆值。在另一種方法中,諸如在上述過程200中,密鑰用來(lái)提供隨機(jī)出現(xiàn)的確定的映射, 而不需要將預(yù)先映射的實(shí)際和混淆值存儲(chǔ)到映射數(shù)據(jù)結(jié)構(gòu)中。因此,在某些情況下這個(gè)基于密鑰的方法可以節(jié)省存儲(chǔ)空間。例如,密鑰和強(qiáng)加密的散列函數(shù)可以用于從預(yù)定集(例如,查找表)中檢索混淆值。或者,密鑰和偽隨機(jī)置換算法可以用于計(jì)算混淆值。在兩種情況下,如下面更詳細(xì)地描述的,密鑰的使用確保了給定實(shí)際值總是對(duì)應(yīng)于相同的混淆值,同時(shí)使對(duì)應(yīng)關(guān)系隨機(jī)出現(xiàn)。圖3示出在來(lái)自輸入數(shù)據(jù)集的原始值區(qū)域310與替代這些原始值的混淆值區(qū)域 320之間的確定映射300的例子。密鑰k存儲(chǔ)在密鑰存儲(chǔ)330中并且一致地用于將所有原始值映射到給定混淆段中的各個(gè)混淆值,在所述給定混淆段中維持引用完整性。在不需要維持前段引用完整性的不同混淆段中,可以使用不同的密鑰。來(lái)自區(qū)域310的原始值V1和密鑰k用組合函數(shù)340組合起來(lái),以從選擇區(qū)域350 中產(chǎn)生選擇值X??梢允褂萌魏谓M合值V1和密鑰k的確定技術(shù),諸如用值V1和密鑰k作為輸入的數(shù)學(xué)函數(shù)或者表達(dá)式。組合函數(shù)340是確定的,使得相同的V1和k值總是產(chǎn)生相同的χ值。接著用映射函數(shù)360 (例如,使用查找表的確定映射)將選擇值χ從區(qū)域320映射到混淆值v2。映射函數(shù)360也是確定的,使得給定的χ值總是產(chǎn)生相同的混淆值v2?;煜祬^(qū)域320可能包括某些與原始值區(qū)域310相同的值,但是也可能不完全重疊,使得區(qū)域310 中的某些值并不包括作為區(qū)域320中的可能的混淆值,而且區(qū)域320中的某些值并不包括在區(qū)域310中。例如,可能期望使許多原始值成為可能的混淆值(例如地址字段中的城市或國(guó)家、或者姓名字段中的常見姓名),但是可以過濾排除某些特定敏感信息作為可能的混淆值(例如,信用卡號(hào)碼、社會(huì)保險(xiǎn)號(hào)碼、或電話號(hào)碼)。在某些情況下,可能期望具有有效的混淆社會(huì)保險(xiǎn)號(hào)碼(例如,支持對(duì)于混淆數(shù)據(jù)的有效性測(cè)試),而在某些情況下,可能期望無(wú)效的混淆社會(huì)保險(xiǎn)號(hào)碼(例如,確?;煜龜?shù)據(jù)不會(huì)泄露任何人的個(gè)人信息)。組合函數(shù)340和映射函數(shù)360的其中之一或二者都可以包括加密技術(shù),從而使得難以將混淆過程反轉(zhuǎn)并且從對(duì)應(yīng)的混淆數(shù)據(jù)V2中恢復(fù)原始數(shù)據(jù)Vl。對(duì)下述加密散列函數(shù)和密鑰偽隨機(jī)置換技術(shù),組合函數(shù)340包含加密技術(shù)來(lái)產(chǎn)生接著用作進(jìn)入表格選擇混淆值 V2的索引的選擇值X。但是,在另一些實(shí)現(xiàn)方式中,組合函數(shù)340可以是產(chǎn)生選擇值χ的非加密技術(shù)(例如,簡(jiǎn)單的拼接),其接著被用作加密函數(shù)(諸如提供混淆值V2的散列函數(shù)) 的輸入,或者用于查找混淆值V2的索引。其它確定映射可以從給定原始值V1直接產(chǎn)生混淆值v2,無(wú)需計(jì)算中間選擇值X。在某些實(shí)現(xiàn)方式中,混淆特定值的方法可以取決于這個(gè)值的特征。例如,出現(xiàn)在輸入數(shù)據(jù)集的給定字段中的要被混淆的數(shù)據(jù)值可能被歸類為擁有值的“有限”或“無(wú)限”區(qū)域, 而且被歸類為擁有值的“均勻”或“非均勻”分布。對(duì)基于密鑰的混淆,這些特征可以用于確定是從查找表中檢索混淆值還是用偽隨機(jī)置換計(jì)算混淆值。即使未使用密鑰,這些特征也可以用于確定混淆數(shù)據(jù)中特定值的頻率是否反映它們?cè)趯?shí)際生產(chǎn)數(shù)據(jù)中的頻率。對(duì)于“有限區(qū)域數(shù)據(jù)”,可發(fā)生在給定字段中的可能值的數(shù)目限制為在預(yù)定的有效值集中的值的有限數(shù)目(例如,數(shù)字或固定長(zhǎng)度的字符串)。在有限區(qū)域數(shù)據(jù)的混淆期間, 有效性檢查可以用于確定混淆值是否在預(yù)定的有效值集中?!盁o(wú)限區(qū)域數(shù)據(jù)”無(wú)需擁有預(yù)定的可能值集(例如,任意長(zhǎng)度的值)。具有有限區(qū)域數(shù)據(jù)的字段的例子包括社會(huì)保險(xiǎn)號(hào)碼 (SSN)、信用卡號(hào)碼(CCN)、客戶ID(Custid)、美國(guó)電話號(hào)碼以及美國(guó)郵政編碼。具有無(wú)限區(qū)域數(shù)據(jù)的字段的例子包括名字、姓氏和街道地址。對(duì)于“均勻分布數(shù)據(jù)”,假設(shè)不同數(shù)據(jù)值可能近似相等,而且通常預(yù)期對(duì)于數(shù)據(jù)庫(kù)中表示的每個(gè)人是唯一的。對(duì)于“非均勻分布數(shù)據(jù)”,不同值可能會(huì)以不同頻率出現(xiàn)在數(shù)據(jù)集中,而且可能在數(shù)據(jù)庫(kù)中表示的不同人的記錄中重復(fù)。在非均勻分布數(shù)據(jù)的混淆期間,可以用“頻率查找”函數(shù)確保混淆數(shù)據(jù)中特定值的頻率匹配其在實(shí)際生產(chǎn)數(shù)據(jù)中的頻率,如下面更詳細(xì)地描述的。對(duì)上面列出的字段,社會(huì)保險(xiǎn)號(hào)碼、信用卡號(hào)碼、客戶ID和美國(guó)電話號(hào)碼是有均勻分布數(shù)據(jù)的字段的例子,預(yù)期其對(duì)于給定客戶是唯一的;而名字、姓氏和美國(guó)郵政編碼是有非均勻分布數(shù)據(jù)的字段的例子,其可能對(duì)不同客戶重復(fù)。對(duì)于無(wú)限區(qū)域數(shù)據(jù),或者對(duì)于某些非均勻分布數(shù)據(jù),有效性檢查也許不可能或者無(wú)法有效地執(zhí)行。在這些情況下,如果無(wú)法計(jì)算合理的(plausible)值,則可以使用查找表。例如,可以存儲(chǔ)合理的姓名和地址的查找表來(lái)混淆這些字段。對(duì)于非均勻分布數(shù)據(jù),可以用頻率查找函數(shù)確?;煜凳菍?shí)際分布的,或者對(duì)于均勻分布但無(wú)限區(qū)域數(shù)據(jù),混淆處理可以確保從查找表中均勻地選擇值。基于密鑰的混淆使用加密技術(shù)來(lái)構(gòu)建函數(shù),其結(jié)果隨機(jī)出現(xiàn)但實(shí)際上是可重復(fù)并可預(yù)測(cè)的。為混淆實(shí)際數(shù)據(jù)的給定集而選擇密鑰。如果混淆數(shù)據(jù)曾受損,則沒有密鑰就無(wú)法從混淆數(shù)據(jù)中恢復(fù)實(shí)際值,因此密鑰應(yīng)該保密并以安全的方式存儲(chǔ)。可以存儲(chǔ)在混淆處理的多個(gè)執(zhí)行中使用的給定的密鑰,來(lái)確保對(duì)于給定實(shí)際值在多個(gè)執(zhí)行中的任何出現(xiàn),生成相同的混淆值。基于密鑰的混淆處理可以并行執(zhí)行于多個(gè)數(shù)據(jù)集或者單一數(shù)據(jù)集的多個(gè)部分上,這是因?yàn)?,基于密鑰的混淆不一定需要維持以前使用的從實(shí)際到混淆值的映射數(shù)據(jù)結(jié)構(gòu)。例如,數(shù)據(jù)集中的記錄可以被分段(例如,基于諸如客戶ID的給定字段)成為多個(gè)記錄集,而且混淆值的產(chǎn)生和替換可以用不同計(jì)算資源(例如,不同的處理器或者不同的計(jì)算機(jī))對(duì)不同記錄集并行執(zhí)行。為給定字段執(zhí)行基于密鑰的混淆的特定技術(shù)取決于這個(gè)字段的數(shù)據(jù)值的特性 對(duì)于有限區(qū)域和均勻分布的數(shù)據(jù),用密鑰和偽隨機(jī)置換算法計(jì)算值。存儲(chǔ)相同的密鑰在多個(gè)執(zhí)行中使用??梢杂靡粋€(gè)或更多個(gè)有效性函數(shù)確?;煜档挠行浴!?duì)于無(wú)限區(qū)域數(shù)據(jù)或非均勻分布數(shù)據(jù),用密鑰和加密散列函數(shù)從查找表中檢索值。存儲(chǔ)相同的密鑰和查找表在多個(gè)執(zhí)行中使用。通過確保查找表中的值是有效的,可以確?;煜档挠行浴jP(guān)于圖4,一個(gè)示范性的數(shù)據(jù)流圖400對(duì)作為輸入提供的客戶(Customers)數(shù)據(jù)集 402執(zhí)行混淆處理。讀取數(shù)據(jù)集402中的記錄并將其提供給圖中的組件作為記錄的流。通過使用數(shù)據(jù)流圖來(lái)執(zhí)行混淆,系統(tǒng)100能夠?qū)?shù)據(jù)混淆處理與多種附加的數(shù)據(jù)流處理的任一結(jié)合起來(lái),而且能夠使用并行處理技術(shù)來(lái)執(zhí)行圖中的任何組件。圖400包括一系列“重新格式化(Reformat) ”組件,各自通過用混淆值替代記錄的給定字段中的實(shí)際值,對(duì)在它的輸
9入端口接收到的給定記錄進(jìn)行重新格式化,并且在它的輸出端口輸出重新格式化的記錄。 對(duì)要被混淆的客戶數(shù)據(jù)集402中的多個(gè)字段中的每一個(gè)(例如,記錄中的所有字段,或者記錄中的字段的選定子集),有一個(gè)重新格式化組件。在這個(gè)例子中,有六個(gè)字段要被混淆 姓氏(Last Name)、名字(First Name)、地址(Address)、SSN、CCN 以及 Custid。組件 404 處理姓氏字段的混淆,組件406處理名字字段的混淆,組件408處理地址字段的混淆,組件 410處理SSN字段的混淆,組件412處理CCN字段的混淆,以及組件414處理Custid字段的混淆。從組件414輸出的混淆記錄的流作為圖400的輸出而存儲(chǔ)在混淆客戶數(shù)據(jù)集416 中。圖400也與存儲(chǔ)表征輸入數(shù)據(jù)集402的某些屬性的信息的數(shù)據(jù)集418相關(guān)聯(lián),如下面更詳細(xì)地描述的。所有重新格式化組件能夠使用共同的密鑰值,其作為圖400的參數(shù)而存儲(chǔ)?;煜龜?shù)據(jù)集416的安全性取決于保持密鑰參數(shù)安全。密鑰可以充分長(zhǎng)(例如,12或60 位數(shù),或者更長(zhǎng))來(lái)增強(qiáng)安全性。在組件中處理來(lái)自數(shù)據(jù)集402的第一個(gè)記錄之前或者與此同時(shí),組件確定是否使用非密鑰技術(shù)、密鑰表查找技術(shù)、或者密鑰偽隨機(jī)置換技術(shù)為這個(gè)組件處理的字段確定混淆值。如果字段有不需要在與給定客戶關(guān)聯(lián)的不同記錄之間一致地分配的值(例如,交易金額),而且不是特別敏感的,則可以用不依靠存儲(chǔ)的密鑰值的技術(shù)來(lái)混淆記錄的這個(gè)字段中的值。例如,組件可以用隨機(jī)值生成函數(shù)。如果字段有應(yīng)該在與給定客戶關(guān)聯(lián)的不同記錄之間一致地分配的值,和/或應(yīng)該與特定的分布、區(qū)域或者有效性測(cè)試相匹配,那么存儲(chǔ)的密鑰可以用于執(zhí)行密鑰表查找技術(shù)或者密鑰偽隨機(jī)置換技術(shù)之一。如果字段有無(wú)限區(qū)域或者非均勻分布的值,則組件使用基于加密散列法的密鑰表查找技術(shù)。加密散列函數(shù)用存儲(chǔ)的密鑰值來(lái)計(jì)算索引值,并且這個(gè)索引值用于從可能的混淆值表格中查找值。由于加密散列產(chǎn)生隨機(jī)出現(xiàn)的值,因此索引(以及由此得出的混淆值) 似乎是隨機(jī)選擇的。但是,如果知道密鑰值,則索引實(shí)際上是可預(yù)測(cè)并可重復(fù)的。如果字段值有非均勻分布,則組件對(duì)來(lái)自數(shù)據(jù)集418之一的該字段使用利用頻率簡(jiǎn)檔信息的“頻率查找”操作。例如,對(duì)諸如名字、姓氏、地址以及美國(guó)郵政編碼(U. S. Zip code)的字段,對(duì)于這些字段中的每一個(gè),數(shù)據(jù)集418包括“頻率(Frequency)”數(shù)據(jù)集和“最高頻率(Frequency Max) ”數(shù)據(jù)集。最高頻率數(shù)據(jù)集包括在實(shí)際數(shù)據(jù)的給定字段中出現(xiàn)的所有值的總計(jì)數(shù),并允許頻率查找操作為給定字段查找總計(jì)數(shù)。因此,各個(gè)最高頻率數(shù)據(jù)集包括信號(hào)總計(jì)數(shù)值。各個(gè)頻率數(shù)據(jù)集包括由不重疊范圍編入索引的查找表,并允許頻率查找操作使用“間隔查找” 函數(shù)為給定索引值查找給定字段值。由于選擇了不同的索引值,因此基于它們?cè)趯?shí)際數(shù)據(jù)中的出現(xiàn)頻率,以適當(dāng)?shù)念l率選擇字段值。例如,圖5示出對(duì)于名字字段的頻率數(shù)據(jù)集的查找表的例子。為0-2范圍中的索引值選擇名字“諾頓(Norton)”,為3-10范圍中的索引值選擇名字“李(Lee) ”,以及為索引值11選擇名字“巴特勒(Butler)”。范圍的大小與對(duì)應(yīng)值根據(jù)簡(jiǎn)檔信息的統(tǒng)計(jì)數(shù)據(jù)出現(xiàn)在實(shí)際數(shù)據(jù)中的頻率成比例。因此,如果索引值以相等概率出現(xiàn),則各個(gè)名字的值會(huì)以在實(shí)際數(shù)據(jù)中出現(xiàn)的相同的頻率出現(xiàn)。如果字段有有限區(qū)域和均勻分布的值,則組件使用基于偽隨機(jī)數(shù)生成的密鑰偽隨機(jī)置換技術(shù)(例如,Luby-RackofT偽隨機(jī)置換生成單元)。在某些實(shí)現(xiàn)方式中,對(duì)于任何給定密鑰和范圍1,……,N(例如,對(duì)于諸如社會(huì)保險(xiǎn)號(hào)碼或者信用卡號(hào)碼的原始值,對(duì)應(yīng)于有限區(qū)域的數(shù)的范圍)中的輸入值,置換生成單元函數(shù)f(k,η)用于以隨機(jī)出現(xiàn)的方式產(chǎn)生與實(shí)際值有關(guān)的混淆值。例如,不同η值產(chǎn)生不同f(k,n)的值,其中f(k,n)是1與N之間的整數(shù)。η與f(k,n)之間的關(guān)系是確定的,但是隨機(jī)出現(xiàn)(例如,η的連續(xù)值產(chǎn)生隨機(jī)分布式出現(xiàn)的f(k,n)的值)。k值是為不同k值提供不同的η對(duì)f(k,n)序列的密鑰值。對(duì)于密鑰k的給定值,為η的連續(xù)值確定得到的f(k,n)值的序列;但是,針對(duì)k的一個(gè)值對(duì)于η 的連續(xù)值的f(k,n)值的序列,不能僅從針對(duì)k的另一個(gè)值對(duì)于η的連續(xù)值的f(k,η)值的序列中預(yù)測(cè)到。圖6所示的表格示出對(duì)于1和20之間的η的有序值以及單一的密鑰值k,置換生成單元可以在1和20之間“打亂(shuffle) ”f(k,η)的可能值的例子。在這個(gè)例子中,f(k, η)的一個(gè)打亂值映射到η的每個(gè)輸入值。由于輸入值和每行的密鑰的組合是唯一的,因此沒有兩個(gè)打亂值是相同的。由于混淆值根據(jù)打亂值f(k,n)來(lái)選擇,因此也沒有兩個(gè)混淆值是相同的。為簡(jiǎn)單起見,圖6中給定的例子示出20個(gè)打亂值,但是可以生成更大的序列。如下例子描述了在圖4的數(shù)據(jù)流圖中的每個(gè)重新格式化組件的實(shí)現(xiàn)方式?;煜帐献侄沃档慕M件404可以用keyecLpick函數(shù)將看似隨機(jī)的索引創(chuàng)建到姓氏的間隔查找表中。即使他們的實(shí)際姓氏相同,為了確保不同客戶得到不同的混淆姓氏, Custid字段可以在計(jì)算傳遞給keyecLpick的密鑰值中使用。結(jié)合使用間隔查找進(jìn)行此操作,可以維持姓氏的分布統(tǒng)計(jì)數(shù)據(jù)。在這個(gè)例子中,在實(shí)際數(shù)據(jù)中有相同姓氏的家庭成員可能在混淆數(shù)據(jù)中被分配不同的姓氏?;煜肿侄沃档慕M件406可以以與組件404相似的方式實(shí)現(xiàn)。如果在實(shí)際數(shù)據(jù)中出現(xiàn)識(shí)別客戶為男性或女性的字段,則keyecLpick函數(shù)能夠區(qū)分男性和女性名字?;蛘?,所述函數(shù)例如可以通過使用附加查找表做“良好推測(cè)”?;煜刂纷侄沃档慕M件408用keyecLpick函數(shù)將看似隨機(jī)的索引創(chuàng)建到兩個(gè)間隔查找表中一個(gè)包含郵政編碼、城市和國(guó)家;另一個(gè)包含門牌號(hào)碼和街道名稱。如果知道密鑰,則索引可以是可預(yù)測(cè)的。為了更難得到敏感信息,組件可以獨(dú)立地選擇郵政編碼和街道名稱,而且可以構(gòu)造不存在的地址,諸如賓夕法尼亞大道1600號(hào),列克星敦, MA02421 (1600Pennsylvania Avenue,Lexington,MA 02421)。或者,對(duì)于要驗(yàn)證地址的應(yīng)用軟件,組件可以配置為同時(shí)選擇街道名稱和郵政編碼。為了確保門牌號(hào)碼對(duì)給定的街道并非不切實(shí)際地高,組件可以對(duì)可能的選擇值加以限制?;煜齋SN字段值的組件410用偽隨機(jī)置換技術(shù)選擇偽隨機(jī)9位數(shù),直到找到對(duì)應(yīng)于有效SSN的一個(gè)。組件410也能夠用圖7所示的技術(shù)確保每個(gè)混淆值是唯一的。為簡(jiǎn)單起見,我們假設(shè)圖7中的偶數(shù)表示有效SSN,而9位數(shù)的奇數(shù)不是有效SSN。如上所述,偽隨機(jī)置換技術(shù)可以用置換生成單元函數(shù)對(duì)給定字段“打亂”可能的值。圖7中的表格的開始兩列示出這個(gè)打亂,說明SSN可能如何被打亂。第三列說明按需要的次數(shù)調(diào)用證實(shí)SSN的函數(shù)的結(jié)果,以確保輸出有效的SSN。表格中的箭頭顯示步驟的順序a.對(duì)于每個(gè)輸入SSN(在列1中表示),encode_ssn函數(shù)在列2的同一行中分配打亂值。b.如果列2中選擇的數(shù)值為偶數(shù)(有效),則它可作為混淆值被寫入驗(yàn)證的輸出變量中(在列3中表示)。如果列2中選擇的數(shù)值為奇數(shù)(無(wú)效),則函數(shù)回到列1,在其中找到選擇的數(shù)目,并且檢查列2的這一行中的值是否有效。c.重復(fù)這一步驟直到找到有效數(shù)值。由于列2中的每個(gè)數(shù)值僅可以被列1中的一個(gè)數(shù)值達(dá)到(即,從列1到列2的映射是一對(duì)一的),因此列3中每個(gè)驗(yàn)證過的混淆值是唯一的。例如,對(duì)于包含2和4的輸入字段,組件410將分別遍歷在圖7的表的頂部顯示的順序來(lái)找到有效的輸出值。第一序列使用圖7的表格中的箭頭示出?;煜鼵CN字段值的組件412基于CCN為16位數(shù)而且以4開頭的有效性標(biāo)準(zhǔn),盡管可以采用任何其它位數(shù)或位數(shù)的順序。第一個(gè)6位數(shù)可能足以確定發(fā)行者(issuer)。最后一位數(shù)是控制數(shù)值(例如,用Luhn算法計(jì)算)來(lái)檢查在它前邊的數(shù)位的錯(cuò)誤。組件412用偽隨機(jī)置換技術(shù)來(lái)選擇偽隨機(jī)15位數(shù),直到找到有效的一個(gè),并接著計(jì)算控制數(shù)位。組件 414提供有效性檢查函數(shù)以通過檢查長(zhǎng)度和控制數(shù)位來(lái)證實(shí)數(shù)值是有效的CCN。混淆Custid字段值的組件414基于Custid是在1000000000和9999999999之間的10位數(shù)的假設(shè)。與SSN和CCN —樣,這個(gè)組件可以定義用偽隨機(jī)置換技術(shù)來(lái)選擇偽隨機(jī)數(shù)值的編碼函數(shù)?;煜c用于SSN和CCN的方法不同可以在于,有效性檢查可能不是必須的?;煜龜?shù)據(jù)之后,數(shù)據(jù)混淆模塊112能夠測(cè)試混淆的效果。在某些實(shí)現(xiàn)方式中,模塊 112通過用可能為多個(gè)字段值組成的復(fù)合密鑰(例如,名字字段的值與姓氏字段的值相結(jié)合)的密鑰執(zhí)行聯(lián)合操作,證實(shí)在混淆字段中不存在實(shí)際數(shù)據(jù)。通過將混淆記錄的字段中的值與實(shí)際記錄中的對(duì)應(yīng)字段的值相比較,模塊112可以證實(shí)對(duì)于任何給定名字和姓氏, 混淆數(shù)據(jù)包含與真實(shí)數(shù)據(jù)不同的值。上述混淆技術(shù)可以用用于在計(jì)算機(jī)上執(zhí)行的軟件來(lái)實(shí)施。例如,軟件在各自包括至少一個(gè)處理器、至少一個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)(包括易失和非易失性存儲(chǔ)器和/或存儲(chǔ)元件)、 至少一個(gè)輸入設(shè)備或端口、以及至少一個(gè)輸出設(shè)備或端口的一個(gè)或更多個(gè)編程或可編程的計(jì)算機(jī)系統(tǒng)(可能為多種架構(gòu),諸如分布式、客戶端/服務(wù)器或者網(wǎng)格式)上執(zhí)行的一個(gè)或更多個(gè)計(jì)算機(jī)程序中形成過程。所述軟件可以構(gòu)成例如提供關(guān)于計(jì)算圖表的設(shè)計(jì)和構(gòu)造的其它業(yè)務(wù)的較大的程序中的一個(gè)或更多個(gè)模塊。圖的節(jié)點(diǎn)和元件可以作為存儲(chǔ)于計(jì)算機(jī)可讀介質(zhì)的數(shù)據(jù)結(jié)構(gòu)或者其它存儲(chǔ)于數(shù)據(jù)存儲(chǔ)庫(kù)中的符合數(shù)據(jù)模型的組織數(shù)據(jù)而實(shí)施。所述軟件可以提供于諸如CD-ROM的存儲(chǔ)介質(zhì)上,可以被一般或特殊用途的可編程計(jì)算機(jī)讀取,或者通過網(wǎng)絡(luò)通信介質(zhì)傳送(在傳播的信號(hào)中編碼)到執(zhí)行它的計(jì)算機(jī)。 全部功能可以在特殊用途的計(jì)算機(jī)上執(zhí)行,或者使用諸如協(xié)處理器的特殊用途的硬件來(lái)執(zhí)行。所述軟件可以以分布式方式執(zhí)行,其中由軟件指定的不同計(jì)算部分用不同的計(jì)算機(jī)執(zhí)行。每個(gè)這樣的計(jì)算機(jī)程序最好存儲(chǔ)在或者下載到存儲(chǔ)介質(zhì)或設(shè)備(例如,固態(tài)存儲(chǔ)器或介質(zhì),或者磁性或光學(xué)介質(zhì)),所述存儲(chǔ)介質(zhì)或設(shè)備可由一般或特殊用途可編程計(jì)算機(jī)讀取,用于當(dāng)存儲(chǔ)介質(zhì)或設(shè)備被計(jì)算機(jī)系統(tǒng)讀取時(shí)配置和操作計(jì)算機(jī)來(lái)執(zhí)行這里描述的步驟。所述發(fā)明系統(tǒng)也可以被考慮作為配置有計(jì)算機(jī)程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)而實(shí)施,其中存儲(chǔ)介質(zhì)配置為導(dǎo)致計(jì)算機(jī)系統(tǒng)以特殊并預(yù)定的方式操作從而執(zhí)行這里描述的功能。已經(jīng)描述了本發(fā)明的許多實(shí)施例。然而,將理解在不脫離本發(fā)明的精神和范圍內(nèi)可以進(jìn)行各種修改。例如,上述某些步驟可能與次序無(wú)關(guān),因此可以不同于所述次序的次序而執(zhí)行。應(yīng)理解到上述描述意圖說明而并非限制本發(fā)明的范圍,所述范圍由附加權(quán)利要求范圍界定。例如,上述許多功能步驟可以以不同次序執(zhí)行,而沒有實(shí)質(zhì)影響總體處理。其它
12實(shí)施例在權(quán)利要求的范圍之內(nèi)。
權(quán)利要求
1.一種用于混淆數(shù)據(jù)的方法,所述方法包括從數(shù)據(jù)源讀取在多個(gè)記錄的一個(gè)或更多個(gè)字段中出現(xiàn)的值;存儲(chǔ)密鑰值;對(duì)多個(gè)記錄中的每一個(gè),用所述密鑰值生成混淆值來(lái)替代所述記錄的給定字段中的原始值,使得所述混淆值取決于所述密鑰值并且確定地與所述原始值相關(guān);以及在數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)包括包含混淆值的記錄的混淆數(shù)據(jù)集合。
2.如權(quán)利要求1所述的方法,進(jìn)一步包括存儲(chǔ)簡(jiǎn)檔信息,所述簡(jiǎn)檔信息包括至少一個(gè)所述字段的統(tǒng)計(jì)數(shù)據(jù)特征值。
3.如權(quán)利要求2所述的方法,其中,對(duì)所述給定字段,用所述密鑰值和所存儲(chǔ)的簡(jiǎn)檔信息生成所述混淆值。
4.如權(quán)利要求3所述的方法,其中,所述混淆值以基于所述給定字段的所存儲(chǔ)的簡(jiǎn)檔信息特征值中的統(tǒng)計(jì)數(shù)據(jù)而確定的頻率,出現(xiàn)在所述混淆數(shù)據(jù)集合的給定字段中。
5.如權(quán)利要求4所述的方法,其中,通過用所述原始值和所述密鑰作為生成索引值的函數(shù)的輸入、并用所述索引值在預(yù)定的混淆值集中查找所述混淆值,生成所述混淆值。
6.如權(quán)利要求5所述的方法,其中,所述預(yù)定的混淆值集作為查找表而存儲(chǔ),在所述查找表中,每個(gè)混淆值對(duì)應(yīng)于一個(gè)或更多個(gè)索引值。
7.如權(quán)利要求5所述的方法,其中,一范圍內(nèi)的多個(gè)索引值對(duì)應(yīng)于在所述預(yù)定的混淆值集中的相同的混淆值。
8.如權(quán)利要求7所述的方法,其中,所述范圍的大小基于給定字段的所存儲(chǔ)的簡(jiǎn)檔信息特征值中的所述統(tǒng)計(jì)數(shù)據(jù)。
9.如權(quán)利要求1所述的方法,其中,用所述密鑰值生成混淆值來(lái)替代所述記錄的給定字段中的原始值包括用確定函數(shù)組合所述原始值和所述密鑰來(lái)產(chǎn)生用于選擇所述混淆值的選擇值。
10.如權(quán)利要求9所述的方法,其中,用確定映射將所述選擇值映射到所述混淆值。
11.如權(quán)利要求9所述的方法,其中,從中選擇所述混淆值的值域包括來(lái)自所述數(shù)據(jù)源的記錄的給定字段中的多個(gè)所述原始值。
12.如權(quán)利要求11所述的方法,其中,一個(gè)或更多個(gè)所述原始值不包括在所述值域中。
13.如權(quán)利要求12所述的方法,其中,所述值域中的一個(gè)或更多個(gè)值不包括在所述原始值中。
14.如權(quán)利要求9所述的方法,其中,所述確定函數(shù)用所述密鑰以加密方式阻止從所述混淆值中恢復(fù)所述原始值。
15.如權(quán)利要求9所述的方法,其中,所述確定函數(shù)針對(duì)所述密鑰的不同值提供選擇值對(duì)連續(xù)原始值的不同順序。
16.如權(quán)利要求15所述的方法,其中,針對(duì)所述密鑰的第一值對(duì)連續(xù)原始值的選擇值的第一序列不能從針對(duì)所述密鑰的第二值對(duì)連續(xù)原始值的選擇值的第二序列中預(yù)測(cè)到。
17.如權(quán)利要求9所述的方法,其中,用所述密鑰值生成所述混淆值來(lái)替代所述記錄的給定字段中的原始值包括確定所述選擇值是否與有效的混淆值對(duì)應(yīng),而且如果不是,則重復(fù)地用所述確定函數(shù)組合所述選擇值和所述密鑰來(lái)產(chǎn)生附加選擇值,直到所述附加選擇值與有效的混淆值對(duì)應(yīng)。
18.如權(quán)利要求17所述的方法,其中,有效的混淆值由預(yù)定的位數(shù)組成。
19.如權(quán)利要求1所述的方法,進(jìn)一步包括將來(lái)自所述數(shù)據(jù)源的所述記錄劃分為多個(gè)記錄集,并且,用不同計(jì)算資源并行地在不同記錄集的記錄中用所生成的所述混淆值替代所述給定字段中的原始值。
20.如權(quán)利要求1所述的方法,其中,包括所述混淆數(shù)據(jù)集合中的混淆值的至少第一記錄包括至少一個(gè)沒有被混淆值替代的原始值。
21.如權(quán)利要求1所述的方法,進(jìn)一步包括對(duì)所述原始值出現(xiàn)的多個(gè)記錄,基于所述原始值是否一致地被相同的混淆值替代,確定是否使用所述密鑰值以混淆值替代在所述第一記錄中的原始值。
22.一種用于混淆數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括提供在一個(gè)或更多個(gè)字段中具有值的記錄的數(shù)據(jù)源; 數(shù)據(jù)存儲(chǔ)系統(tǒng);以及一個(gè)或更多個(gè)連接到所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的處理器,提供執(zhí)行環(huán)境來(lái) 從所述數(shù)據(jù)源讀取在多個(gè)記錄的一個(gè)或更多個(gè)字段中出現(xiàn)的值; 存儲(chǔ)密鑰值;對(duì)多個(gè)記錄中的每一個(gè),用密鑰值生成混淆值來(lái)替代所述記錄的給定字段中的原始值,使得所述混淆值取決于所述密鑰值并且確定地與所述原始值相關(guān);以及在所述數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)包括包含混淆值的記錄的混淆數(shù)據(jù)集合。
23.一種用于混淆數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括提供在一個(gè)或更多個(gè)字段中具有值的記錄的數(shù)據(jù)源; 數(shù)據(jù)存儲(chǔ)系統(tǒng);以及從數(shù)據(jù)源讀取在多個(gè)記錄的一個(gè)或更多個(gè)字段中出現(xiàn)的值的裝置; 對(duì)多個(gè)記錄中的每一個(gè),用密鑰值生成混淆值來(lái)替代所述記錄的給定字段中的原始值,使得所述混淆值取決于所述密鑰值并且確定地與所述原始值相關(guān)的裝置;以及在所述數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)包括包含混淆值的記錄的混淆數(shù)據(jù)集合的裝置。
24.一種存儲(chǔ)用于混淆數(shù)據(jù)的計(jì)算機(jī)程序的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)程序包括用于使得計(jì)算機(jī)執(zhí)行以下步驟的指令從數(shù)據(jù)源讀取在多個(gè)記錄的一個(gè)或更多個(gè)字段中出現(xiàn)的值; 存儲(chǔ)密鑰值;對(duì)多個(gè)記錄中的每一個(gè),用所述密鑰值生成混淆值來(lái)替代所述記錄的給定字段中的原始值,使得所述混淆值取決于所述密鑰值并且確定地與所述原始值相關(guān);以及在數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)包括包含混淆值的記錄的混淆數(shù)據(jù)集合。
全文摘要
混淆數(shù)據(jù)的方法包括讀取(210)發(fā)生在數(shù)據(jù)源中的多個(gè)記錄的一個(gè)或更多個(gè)字段中的值;存儲(chǔ)(220)密鑰值;對(duì)多個(gè)記錄中的每一個(gè),用所述密鑰值生成(230)混淆值來(lái)替代所述記錄的給定字段中的原始值,這樣,所述混淆值取決于所述密鑰值并且確定地與所述原始值相關(guān);以及存儲(chǔ)(240)包括記錄的所述混淆數(shù)據(jù)集合,所述記錄包括數(shù)據(jù)存儲(chǔ)系統(tǒng)中的混淆值。
文檔編號(hào)G06F13/00GK102460404SQ201080032309
公開日2012年5月16日 申請(qǐng)日期2010年6月1日 優(yōu)先權(quán)日2009年6月1日
發(fā)明者P.尼爾加德 申請(qǐng)人:起元技術(shù)有限責(zé)任公司