• 快捷搜索
  • 全站搜索

创新商业银行客户姓名脱敏技术

2014-10-22 17:07:43作者:中国农业银行股份有限公司数据中心 周期律 张旭春 蔡仕志编辑:金融咨询网
商业银行庞大的用户群体使得用户信息保护成为银行信息安全工作的重要一环,客户姓名是高度敏感的信息,一旦泄露,后果严重;另一方面,商业银行当下的脱敏处理技术存在较大漏洞,因此本文重点解析了频度码表的建立及其对客户姓名进行脱敏处理的效能和优势,其高效性、有效性、真实性、稳定性和多样性无不显示着这一脱敏技术的强大效能。

目前,商业银行已经积累了海量的客户姓名数据,这些数据具有高度敏感性,如何防范这类数据泄漏风险是每个商业银行需要解决的关键问题。以此为研究目标,本文提出了一种基于频度码表的客户姓名脱敏技术方法,通过预处理建立姓氏、单名、复名及标准四个码表,其中,前三个码表通过循环链表结构建立频度分段,并基于这四个码表构建脱敏算法。实验证明,该技术可高效地去掉客户姓名敏感性,同时,脱敏结果完全具备原数据的业务特征及分布特征,并具备稳定性和多样性,非常适合商业银行以此构建开发、测试或演练环境。

一、客户姓名脱敏技术研究背景

        对于商业银行来说,客户信息是最敏感的数据,其中又以客户姓名等能指向具体客户的数据为重中之重,如何防范这些数据泄漏造成的风险是每个商业银行需要解决的重要问题。商业银行通常会在应用系统开发、测试、演练及培训时对使用的客户姓名数据进行脱敏处理。所谓脱敏,即通过技术手段将真实客户姓名置换掉,以此去掉敏感性。

        目前,商业银行用于处理客户姓名的主要脱敏技术主要有包括:

        (1)直接将所有中文姓名,替换为固定姓名,如“张—一

        (2)将原姓名每个中文字符的编码进行偏移随机长度,以生成另外一个中文字符;

        (3)准备一张常见中文名字的码表,存放100万左右的中文姓名,将原有姓名hash查表后进行替换。

        其中,第一种方法处理结果单一,分布特征完全丧失;第二种方法处理结果完全丧失业务特征(像真实姓名一样);第三种方法处理结果比前两种要好,但需要大量时间和空间开销,且对于几亿不同的姓名仅用百万量级的姓名库进行查表替换,原数据分布特征仍然遭到破坏。

二、通过预处理建立频度码表

        客户姓名脱敏方法的核心在于通过预处理建立包含频度信息的姓氏、单名、复名及标准四个码表。其中,A码表(姓氏码表)存放姓氏数据;B码表(单名码表)存放单名(姓名为两个汉字)数据;C码表(复名码表)存放复名(姓名多余两个汉字)数据;D码表(标准码表)存放GB2312标准常用汉字中不包括A、B、C三个码表中已存储的数据。

        首先,通过从仿真环境提取真实姓名数据分析,A、B、C三个码表按照频度递减的方式提取相对靠前的数据,其中,A码表总共存储500余个姓氏汉字,覆盖了超过99.3%的常用姓氏;B码表总共存放了800余个单名汉字,覆盖了超过97%的常用单名;C码表总共存放了1000余个复名汉字,覆盖了超过98.4%的常用复名。D码表中存放了GB2312标准常用汉字中没有在A、B、C三个码表中的汉字,共计4000余个,覆盖了接近100%的姓名中可能出现汉字。

        按照公式1计算码表中存储的汉字码值。汉字码值的计算方法为每个汉字的低字节左移8位,再加上高字节的值,即:

        汉字码值=低字节值<<8+高字节值 公式1

        这样计算汉字码值是为了使得码值分布更加均匀,因为汉字一般是先按常用字的拼音升序进行编码,接下来再编码非常见汉字,然后是非常见汉字中有一些是常用姓或常用名,如“佟”、“芸”等,低字节的变化较大,左移低字节会使得码表中的分布更均匀。

        其次,将A、B、C三个码表中存放的汉字按照出现的频率从高到低分别划分成若干个分段。例如,A码表中的500个姓氏可以划分为5个分段:前15位为第一分段,第16~60位为第二分段,第61~150为第三分段,第151~300为第四分段,剩下的为第五分段。码表中处于同一个分段中的汉字用指针串成环路(如图1所示),下面以两个分段来示例(其中汉字码值为Z/OS中的EBCDIC码按公式1计算得到):

 1-图1.jpg

        箭头代表指针指向,红蓝指针分别形成了环路,红指针环路代表第一分段有五个汉字形成链路:王、吴、杨、张、周,他们都属于频度较高的分段;蓝指针环路代表第二分段有五个汉字形成链路:武、夏、姚、于、曾,他们都属于频度较低的分段。

        按上述方式将A、B、C码表建好,实际是将姓氏,单名,复名按类似频度进行了分段。

        最后,按照汉字码值从小到大的顺序将A、B、C、D四个码表中存放汉字码值及指针信息排好序,形成文件,完成码表建立预处理。

三、基于频度码表实现客户姓名脱敏

        实际脱敏操作时,按图2所示步骤对真实姓名数据进行处理:

 1-图2.jpg

        其中,计算原数据的姓氏汉字的码值,在A码表中进行二分查找,如没有找到,则不做处理;如找到,计算原数据中每个姓名汉字的码值之和,假设为S,然后计算偏移值OA,其计算方式如下:

 1 2 下一页 尾页

扫码即可手机
阅读转发此文

本文评论

相关文章