提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前缀保留
- 一、Crypto PAn算法
- 1.1 具体步骤
- 1.2 二叉树表示
- 应用实例
- 总结
- 参考文献
前缀保留
对IP地址进行匿名化的直接方法是将每个原始IP地址映射到一个随机的32位的“新地址”。
对匿名化要求:
- 匿名后的结果不可逆,即不能够通过映射结果找到原始数据(起码是在不借助外援数据的情况下);
- 前缀保留算法,能够保证IP之间的前缀关系不发生改变,即具有相同前缀的原始IP,经过匿名后前缀也是相同的(注意:匿名后数据和原数据的前缀是不相同的,只是跟原数据具有相同前缀的IP映射结果前缀一样。但是调研后部分文献的保留前缀是直接保留原始IP地址的前16位的前缀,原数据和匿名结果前缀也是一样的,参考文献[2]就是,可能是由于应用场景不同导致的,没有深入调研。)
一、Crypto PAn算法
IP地址前缀保留算法的匿名化函数定义:任给两个IP地址a = a1a2...an和b = b1b2...bn,共享最长前缀是k(0<=k<=n)bit,即a1a2…ak = b1b2…bk且ak+1 ≠ bk+1。若某个匿名化函数F是从{0,1}n到{0,1}n的一一映射函数,这两个地址经F匿名化之后:的共享前缀也是
k bit,即且
,则
F是前缀保留的IP地址匿名化函数。
1.1 具体步骤
对IP地址,利用
Rijndeal加密算法构造的匿名化函数。其中:
⊕
是{0,1}i到{0,1}的函数,
L表示最高位比特,R表示Rijndeal加密算法,P为填充函数,K为密钥,则可以表示为:
1.2 二叉树表示
IPv4的地址集可以由高度为32的完整二叉树表示。如下图(a)(来源于文献[1],图中就展示了IP的前4个字节)即是地址树空间,类似于信息论里面的哈夫曼树:

匿名化函数是在地址树的某些节点上进行翻转,是匿名化树种某些节点上进行翻转,
是匿名化树种响应的节点,如果
,则该节点对应的原地址树节点不变,若
,则该节点对应的原地址树节点要取反。图(b)表示原始地址树,图©表示匿名化函数树,图(d)表示匿名地址树。
(二叉树这里还是有点不懂,还需要再看看)
Rijndeal分组长度和密钥长度均可独立地设定为32bit的任意倍数,最小128bit,最大256bit,匿名化过程中先对填充串进行加密,用加密后的填充串作为真正的填充串。给定一个IP地址,依次取它的前0,1,2,…,31bit前缀,用填充串将其扩展至128bit,然后分别对其加密,各得到128bit的密文,只取其第1个比特位,按照由高位到低位的顺序得到一个32bit的匿名化树节点序列,翻转节点用黑色的节点“1”表示,不翻转的节点用空心的节点“0”表示。将这个32bit的序列与原来的IP地址a按位异或就得到匿名化后的IP地址a按位异或就得到匿名化后的IP地址a’。
应用实例
算法的Java实现:https:///jzhou59/CryptoPAn
总结
对网络数据的匿名化手段,其中将IP作为匿名化对象的研究相对较多,近年来也存在不少改进,还在继续研读。其次就是针对于文本的K-匿名化系列算法,将作为IP后的下一步调研计划。
















