gold-decorated-mask

在本博客的兩部分系列的第一部分中,我們深入探討了旨在混合數據的數據洗牌技術,同時可以選擇保留列之間的邏輯關系。在第二部分中,我們將重點介紹數據屏蔽技術,作為保證數據隱私的主要方法之一。

數據屏蔽

簡而言之,屏蔽技術允許阻止特定字段或數據片段的可見性。它隱藏數據,同時保留整體格式和語義。它實際上在數據字段上應用了特定函數后,創建一個結構上相似但不真實的數據版本。

請注意,當使用最常用的技術進行數據屏蔽時,原始數據在被屏蔽后無法檢索。盡管如此,仍然存在一些基于加密的算法,允許用戶加密和解密數據,同時保留格式,我們將在本節的末尾看到。

在以下各節中,我們首先描述了用于隱藏數據片段的眾多數據轉換函數中的一些。然后,我們詳細介紹了不同的掩蔽模式及其在運行時的影響。

您可能還喜歡:實際屏蔽數據 – 第 1 部分。

數據轉換功能

為了屏蔽數據,可以在原始數據上應用大量的轉換函數。讓我們先來挖掘一下最常見的。此列表并非詳盡無遺,并且可以輕松地應用其他轉換來創建其他不真實的數據版本。

文本處理功能

下表列出了一些可用的文本掩蔽例程,例如,它們對值”2019 年的 Talend 非常出色”的影響。

Text handling functions

文本處理功能

數值處理函數

下表列出了包含數值的列的可用掩蔽例程,以及它們對值”21803″的影響。

Data Privacy through masking

通過屏蔽提供數據隱私

日期處理功能

下表列出了包含日期值的列的可用掩蔽例程及其對值”05/04/2018″的影響。

Data Privacy through masking

通過屏蔽提供數據隱私

模式處理功能

特定算法可用于屏蔽遵循特定模式的數據。這非常適合屏蔽記錄,例如信用卡號、社會保險號 (SSN)、帳戶 ID、IP 地址等結構化和標準化數據。

例如,如果我們想要屏蔽法國社會保險號,輸入值由 15 個字符(不包括空格)組成,并使用模式”yy mm ll ooo kkk cc”,其中:

  • s是性別:1 為男性,2 為女性
  • 毫米是出生月份。
  • ll是原產地的編號。
  • ooo是起源的公社。
  • kkk是一個訂單號,用于區分在同一年和月份在同一地點出生的人。
  • cc是”控制鍵”。
  • 通過精確指定如何使用指定范圍屏蔽哪些部件,可以一致地轉換原始數據。例如,您可以指定:

    • s 必須在 1 和 2 之間生成。
    • yy 必須在 00 和 99 之間生成。
    • 必須在 01 和 12 之間生成 mm,等等。

    您還可以屏蔽輸入的特定部分,并保留其他部分的蒙版。例如,您可能希望屏蔽除第一個字符之外的所有 SSN 字符。這將允許保持性別的真實統計數據(由第一個字符表示),保持真實人物的匿名性——其他字符被完全遮蓋。

    當然,相同的行為可以應用于專用數據類型,如電子郵件、電話號碼、地址等。

    屏蔽模式和運行時行為

    屏蔽數據時,除了用于轉換數據的技術例程外,另一個組件也是關鍵。它涉及掩蔽模式和函數在運行時的行為。

    根據目標用例,數據屏蔽例程可以純粹是隨機的。但它們也可以在同一數據集上從一個執行到另一個執行重復。這打開了巨大的視角,特別是允許對屏蔽數據進行聯接和查找。讓我們深入探討一下…

    隨機數據屏蔽

    隨機掩蔽包括用隨機生成的值屏蔽輸入值。因此,當輸入數據集中出現多個相同值時,可以將其屏蔽為不同的值。反之亦然,輸入數據集的不同值可以屏蔽為相同的值。

    例如,下圖顯示了純隨機數據屏蔽的示例:

    • 當 A 值首次出現在輸入數據集中時,該值被蒙版為 D。
    • B 和 C 值被屏蔽為 E。
    • 當 A 值第二次出現在輸入數據集中時,該值被屏蔽為 F。

    Data Privacy through masking

    通過屏蔽提供數據隱私

    下表顯示了使用”替換 n 個第一個字符”函數生成的屏蔽值的示例:

    Data Privacy through masking

    通過屏蔽提供數據隱私

    此處,兩個輸入值相同。屏蔽后,輸出值將完全不同。”新用戶”在第一次出現時被”u_ser”掩蓋,在第二次出現時被”_zoser”掩蓋。

    下表顯示了從法國 SSN 編號生成的屏蔽值的示例:

    Data Privacy through masking

    通過屏蔽提供數據隱私

    同樣,兩個輸入值相同。屏蔽后,相應的輸出值將完全不同。”1 90 04 94 184 376 21″在第一次發生時被”2 59 04 592 221 47 22″所掩蓋,在第二次發生時被”2 73 03 64 078 284 70″所掩蓋

    一致的數據屏蔽

    當相同的值出現在輸入數據中兩次時,一致的掩蔽函數將輸出相同的屏蔽值。但是,兩個不同的輸入值可以替換為輸出中的相同屏蔽值。

    例如,下圖顯示了一致掩蔽的示例:

    • 無論輸入數據集中出現的次數如何,A 值都屏蔽為 D。
    • B 和 C 值被屏蔽為 E。

    Data Privacy through masking

    通過屏蔽提供數據隱私

    下表顯示了使用具有一致項函數的”屏蔽域左側部分”生成的屏蔽值的示例(用額外參數列表中設置的項之一替換左側部分域):

    在這里,相同的輸入值始終被完全相同的輸出值屏蔽:”域”始終被”新公司”屏蔽,”公司”始終被”值”掩蓋。

    一致的數據屏蔽可以看作是Bijective數據屏蔽之前的第一步。

    Bijective 數據屏蔽

    Bijective 掩蔽函數具有以下特征:

    • 它們是一致的掩蔽函數。
    • 它們始終為兩個不同的輸入值輸出兩個不同的屏蔽值。

    例如,下圖顯示了雙向掩蔽的示例:

    • 無論輸入數據集中出現的次數如何,A 值都屏蔽為 D。
    • B 值被屏蔽為 E。
    • C 值被屏蔽為 F。

    Data Privacy through masking

    通過屏蔽提供數據隱私

    下表顯示了從法國 SSN 編號生成的屏蔽值的示例:

    Data Privacy through masking

    通過屏蔽提供數據隱私

    在這里,相同的輸入值始終被完全相同的輸出值屏蔽:”1 90 04 94 184 376 21″始終被”2 89 05 24 283 319 01″所掩蓋。

    如果需要確保初始值和屏蔽值之間的一對一對應關系,Bijective 數據屏蔽非常適合。正如我們在下一節中將看到的,如果您的目標是加入/查找多個屏蔽數據集,同時保持正確的關系,則此屬性是關鍵。

    可重復數據屏蔽

    可重復掩蔽允許保持作業執行之間的一致性。定義種子,因此,對于給定的輸入值和種子值組合,將生成相同的輸出屏蔽值。

    結合雙向數據屏蔽和可重復數據屏蔽具有非常強大的特性。特別是它允許用戶基于已屏蔽的鍵加入不同的數據集。

    假設您希望在保險和醫療保健數據庫上執行商業智能,但我們沒有明確同意直接訪問這些數據。一旦洗牌和屏蔽,我們仍可能對數據執行一些統計信息。

    由于我們必須同時加入這兩個數據庫,因此我們更需要確保用于使聯接的數據在任何地方都以完全相同的方式屏蔽

  • 通過利用可重復的掩蔽,我們可以確保上述內容是真實的…在每個作業執行中。
  • 格式保留加密 (FPE)

    格式保留加密算法是保存輸入值格式的加密算法。這些算法需要指定密鑰才能生成唯一的屏蔽值。

    由于這些方法基于加密,因此存在以下幾個優點:

    • 加密后,可以解密數據,這意味著可以解密輸出值(當然知道密鑰)。然后,這樣的掩蔽函數是可逆的 – 您可以檢索原始輸入數據。
    • 它原生地意味著雙可操作性和可重復性。

    FF1算法是NIST標準的格式保留加密算法。

    結論

    我們看到一些技術有助于確保數據隱私。在這里,關鍵是,沒有一個簡單的神奇解決方案,可以解決您的整個數據隱私問題。

    根據您正在處理的數據類型和要解決的用例,某些技術比其他技術更相關。混合了不同的技術,如數據洗牌,帶有一些可重復的數據掩蔽和一小撮哈希,通常是正確處理此類復雜數據隱私項目的正確途徑。

    好消息是,Talend Data Fabric提供了所有這些不同的技術資源,可幫助您滿足數據隱私需求!

    進一步閱讀

    Comments are closed.