CN101778142A - 比特串和哈希函数组合的网络地址前缀保留的匿名化方法 - Google Patents

比特串和哈希函数组合的网络地址前缀保留的匿名化方法 Download PDF

Info

Publication number
CN101778142A
CN101778142A CN200910262843A CN200910262843A CN101778142A CN 101778142 A CN101778142 A CN 101778142A CN 200910262843 A CN200910262843 A CN 200910262843A CN 200910262843 A CN200910262843 A CN 200910262843A CN 101778142 A CN101778142 A CN 101778142A
Authority
CN
China
Prior art keywords
address
bit
steps
anonymization
prefix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200910262843A
Other languages
English (en)
Other versions
CN101778142B (zh
Inventor
程光
丁伟
臧宁宁
王松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haian Changzhou University Technology Transfer Center Co., Ltd.
Southeast University
Original Assignee
Southeast University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN200910262843A priority Critical patent/CN101778142B/zh
Publication of CN101778142A publication Critical patent/CN101778142A/zh
Application granted granted Critical
Publication of CN101778142B publication Critical patent/CN101778142B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种比特串和哈希函数组合的网络地址前缀保留的匿名化方法,其特征是定义一个以IP地址前缀比特串所对应的十进制整数为输入的地址前缀哈希函数和一个随机比特串,地址前缀哈希函数将IP地址前缀长度为i的IP地址前缀比特串生成哈希值,然后查找随机比特串上所对应哈希值位置上的比特值,将该比特值与需要被匿名化的IP地址的第i个比特进行异或运算,并将异或后的结果作为该IP地址的第i个比特的匿名化比特,对IP地址中的每个比特都采用上述方法进行处理,实现对整个IP地址的匿名化处理,本发明将加密函数和映射函数进行了分离,和传统方法相比提高了方法的执行效率,同时减少了随机比特串所需要的内存空间。

Description

比特串和哈希函数组合的网络地址前缀保留的匿名化方法
技术领域
本发明涉及用于网络地址的匿名化方法,尤其是一种比特串和哈希函数组合的网络地址前缀保留的匿名化方法。
背景技术
本发明中网络地址指的就是IP地址,IP地址包括有32比特长度的IPv4地址和128比特长度的IPv6地址,本发明中讨论的IP地址是指32个比特长度的IPv4地址。
基于高速主干互联网的IP流数据在流量工程、性能评价、安全测试和网络行为学等方面的研究中是必不可少的,但目前只有ISP和为数不多的互联网科研机构才有条件采集到主干网络的IP流数据,如果能将这些宝贵的IP流数据资源向研究人员共享,它将在网络领域的研究中发挥很大的作用。随着网络速度带宽的不断提升,网络流量数据的采集难度也在不断加大。此外,IP流数据中有网络用户的IP地址、通信内容等隐私信息,如果不加处理或处理不当就将IP流数据向外界公布,势必会侵犯网络用户的隐私权或商业秘密,因此,许多拥有主干IP流数据的国内机构不敢贸然公布这些数据,使得数据源的获取途径相当有限。为满足研究者需求,一些国外的研究机构如NLNAR、CAIDA、WIDE、LBNL对外公布了各种拓扑和带宽条件下、格式不一的IP流数据,其中有些数据用不同匿名方法处理。
流量日志中的IP地址是在网络上分配给每台计算机或网络设备的数字标识,在Internet上,每台计算机或网络设备的IP地址是全世界唯一的,因此,IP地址与网络用户直接相关联,它是网络用户隐私的重要体现。IP流量匿名化的核心是IP地址匿名化处理。目前IP地址匿名化方法一般采用切断算法、随机置换算法、前缀保留算法等三种算法。切断法将IP的32位地址中部分固定的bit位置成0,而只保留剩余的位,一般保留IP地址的后8、16、24比特等。如ISC报告端口扫描的IP地址的方法是将前8个比特设置为1。IP地址的映射不是单射的,所有具有相应前缀长度的IP地址会映射成一个值,丢失原有IP地址间的关系及路由特性。随机置换算法安全性能决定于随机数产生算法,利用随机算法产生IP地址的一一对应映射集合来实现随机置换,随机置换算法能使地址间的映射关系变得杂乱无章、毫无规律可循。
两个IP地址最长的共同前缀有若干比特,则它们前缀保留匿名化后的IP地址最长的共同前缀也有相同的长度,这种匿名化就是前缀保留的,它能保持地址间的层次关系和路由特性。IP地址前缀保留匿名化算法能使IP地址间最长前缀关系和层次结构保持不变,按照一定的流规范将报文组成流后,流与流之间的关系与匿名化前保持了相对稳定,而且地址间的映射是一一对应的,对应的五元组与净化前的五元组也是一一对应的映射,这就相当于仅仅将流的名称改变一下,流的根本特性并没有发生变化,唯一的差别是在做基于地址分布的研究时,所得结果将会与数据匿名化前不同。因而将高敏感信息作为净化对象且IP地址采用前缀保留匿名化算法时,能较好地保持流的原来特性,不会对研究结果产生很大影响。
IP地址前缀保留匿名化操作实际上涉及了加密和映射两个函数,对于Crypto-pan,其加密函数的Rijindael非常复杂,实现起来耗时较多,其映射函数则非常简单;而传统的基于比特随机串的方法加密简单,其映射函数的比特随机串需要能够覆盖整个IP地址空间。
目前常用的IP地址前缀保留匿名化处理的算法主要是Crypto-PAn,Crypto-PAn只是对IP地址进行匿名化处理,它用Rijndael加密算法作为随机函数构造了一个IP地址匿名化函数,该函数能够实现IP地址的前缀保留。CAIDA的CoralReef就是采用了Crypto-PAn算法来匿名化IP地址。
IP地址前缀保留的匿名化函数是指任给两个IP地址a=a1a2...an和b=b1b2...bn,其共享最长前缀是k(0≤k≤n)比特,即a1a2...ak=b1b2...bk且ak+1≠bk+1,若某个地址匿名化函数F是从{0,1}n到{0,1}n的一一映射函数,这两个地址经F匿名化后F(a)=a’,F(b)=b’的共享最长前缀也是k比特,即a1’a2’...ak’=b1’b2’...bk’且ak+1’≠bk+1’,则F是前缀保留的IP地址匿名化函数。
IP地址a=a1a2...an,的匿名化函数F(a):=a1’a2’...an’。其中 a i , = a i ⊕ f i - 1 ( a 1 a 2 . . . a i - 1 ) , i=1,2,...,n,fi是{0,1}i到{0,1}的函数,前缀匿名化算法的核心就是fi函数的定义。根据异或函数的性质,如果fi是1,则ai’和ai的值将相反,即如果ai的值是1,ai’的值是0,如果ai的值是0,ai’的值是1;如果fi是0,则ai’和ai的值将相同。因此我们定义如果fi是1则对ai的值进行了翻转,如果fi是0,则对ai的值不翻转。
Crypto-PAn(Cryptography-based Prefix-preserving Anonymization)利用Rijndael加密算法构造fi是{0,1}i到{0,1}的函数,L表示最高位比特,R表示Rijndael加密算法,P为填充函数,K为密钥,则fi可以表示为:fi(a1a2...ai):=L(R(P(a1a2...ai),K))。Crypto-PAn匿名化函数也可以用二叉树表达,原地址空间用一棵完整的二叉树表示,匿名化函数是在地址树的某些节点上进行翻转,fi(a1a2...ai)是匿名化树中相应的节点,如果fi(a1a2...ai)=0,则该节点对应的原地址树节点不变,若fi(a1a2...ai)=1,则该节点对应的原地址树节点要取反。
从原始数据集的特征来看,数据具有明显的地址类型分布和区间分布特征,因而Crypto-PAn在处理该数据集过程中势必存在大量重复计算的现象,再加上原始数据集非常庞大,每个IP地址需要32次128比特位串加密,计算复杂度仍然太高。不论IP地址的相同前缀出现多少次,算法总是从地址的第一位开始重新计算匿名化结果。
对32比特的匿名化采用ISAAC随机化算法及Hash函数。ISAAC是一个伪随机数产生算法,该算法能产生高品质的32位随机数,而且产生的随机数没有什么偏重,在240之内不会出现循环,算法使用256个4字节整数作为内部状态,平均的循环长度28295个32位整数字节。ISAAC初始种子由用户自己定义任意长度不超过1024个字节的字符串,输出结果是均匀分布没有偏重的,如果不知道种子,结果是不可预知的。指定一个长字符串,作为ISAAC算法的种子,产生一个长为L的比特串S,PS(i)表示S的第i比特,如果有某种对应关系使得IP地址匿名化函数的每一个比特与字符串S中某个比特PS(i)有对应关系,而且这种对应关系仅与其地址前缀有关,则匿名化函数与S串就建立了某种映射关系,利用这种映射关系,就可以从S串中找到匿名化函数树。
当0≤i<32时,定义fi(a1a2...ai)=PS(a1a2...ai),实际上比特a1a2...ai前缀对应的PS位串位置是s=ai×2i+ai-1×2i-1+a1×2+a0,这就实现了IP前缀的构造匿名化函数。由于有相同比特前缀的IP地址必然有相同的s值,则比特串相同的位置上的比特值不会改变。从s的计算公式我们可以知道,为了能够匹配32比特的哈希值,位串S的长度需要设置为232-1,这样需要512MB内存存放位串S,使得该算法难以运行在代价较大。
发明内容
本发明提出一种位串和哈希组合的网络地址前缀保留匿名化方法,本发明能够支持对高速网络流量的IP地址进行快速匿名化处理。
本发明采用如下技术方案:
一种比特串和哈希函数组合的网络地址前缀保留的匿名化方法,其特征是定义一个以IP地址前缀比特串所对应的十进制整数为输入的地址前缀哈希函数和一个随机比特串,地址前缀哈希函数将IP地址前缀长度为i的IP地址前缀比特串生成哈希值,然后查找随机比特串上所对应哈希值位置上的比特值,将该比特值与需要被匿名化的IP地址的第i个比特进行异或运算,并将异或后的结果作为该IP地址的第i个比特的匿名化比特,对IP地址中的每个比特都采用上述方法进行处理,实现对整个IP地址的匿名化处理,具体技术步骤如下:
第一步:设置参数
设置一个长度为L的随机比特串S,L是大于等于32的正整数,定义一个地址前缀哈希函数为(λ·a)mod m,设置大于0的乘子λ和模数m两个函数参数值,m是小于等于L的正整数,定义IP地址X的32个比特按顺序分别为X[1]、X[2]、...、X[32],定义Y是IP地址X匿名化以后的地址,其对应的32个比特按顺序分别为Y[1]、Y[2]、...、Y[32],设置当前计算的IP地址前缀长度i等于0,定义a是IP地址前缀长度为i时对应的正整数,定义i等于0时a等于0,进入第二步;
第二步:计算当前的IP地址前缀长度
如果当前IP地址X的前缀长度i小于32,则设置前缀长度i增加1,进入第三步;否则进入到第七步;
第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度i对应的正整数a为前缀长度i-1对应的正整数a乘以2加上IP地址X第i个比特对应的比特值X[i],进入到第四步;
第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度i所对应的哈希值s,s=(λ·a)mod m,进入第五步;
第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应s+1位置的比特值b,进入到第六步;
第六步:匿名化IP地址的第i个比特
如果比特值b是0,则直接将IP地址X第i个比特直接赋值给匿名化后的IP地址Y的第i个比特Y[i]=X[i],回到第二步,如果比特值b是1,则将IP地址X第i个比特翻转后赋值给匿名化后的IP地址Y的第i个比特,即如果X[i]是0,则Y[i]=1,如果X[i]是1,则Y[i]=0,回到第二步;
第七步:输出匿名化的IP地址
将IP地址X匿名化后的IP地址Y输出,IP地址X匿名化结束。
与现有技术相比,本发明具有如下优点及有益效果:
1、该方法能够实现具有相同前缀的不同IP地址,在它们匿名化后依然具有相同IP地址前缀,确保IP地址间最长前缀关系和层次结构保持不变,按照一定的流规范将报文组成流后,流与流之间的关系与匿名化前保持相对稳定;
2、该方法采用了哈希函数和随机比特串相组合的方法实现IP地址的匿名化,采用简单的取模哈希函数代替复杂的Rijndael加密算法,降低CPU的使用负担,采用较短的比特随机串代替了覆盖整个IP地址空间的比特随机串,减少内存空间的使用,因此与Crypto-Pan方法相比,该方法运算效率大大得到了提高,与传统基于位串的方法相比该方法大大减少了随机比特串所需要的内存开销;
3、该方法提出了将IP地址匿名化函数分成了加密函数和映射函数两个部分构成,该方法中的哈希函数和随机比特串分别是对应的加密函数和映射函数,该方法实现了匿名化算法中加密函数和映射函数进行组合使用,避免匿名化过程中单独使用加密函数或映射函数而消耗大量CPU或内存资源,传统纯粹使用其加密函数的匿名化方法非常复杂,传统纯映射函数的方法需要232比特的内存空间建立比特随机串;
4、该方法将IP地址匿名化函数分成两个不同的函数,可以根据CPU资源和内存资源的不同设计不同复杂类型的加密函数和映射函数,将系统的安全性由CPU和内存分别进行承担,使得32比特长度的随机比特串随机性达到232比特内存映射的效果。
附图说明
图1是IP地址匿名化函数树示意图。
图2是基于比特串和哈希函数组合的匿名化算法示意图。
图3是基于比特串和哈希函数组合的IP地址前缀匿名化方法的流程图。
具体实施方式
一种比特串和哈希函数组合的网络地址前缀保留的匿名化方法,其特征是定义一个以IP地址前缀比特串所对应的十进制整数为输入的地址前缀哈希函数和一个随机比特串,地址前缀哈希函数将IP地址前缀长度为i的IP地址前缀比特串生成哈希值,然后查找随机比特串上所对应哈希值位置上的比特值,将该比特值与需要被匿名化的IP地址的第i个比特进行异或运算,并将异或后的结果作为该IP地址的第i个比特的匿名化比特,对IP地址中的每个比特都采用上述方法进行处理,实现对整个IP地址的匿名化处理,具体技术步骤如下:
第一步:设置参数
设置一个长度为L的随机比特串S,L是大于等于32的正整数,定义一个地址前缀哈希函数为(λ·a)mod m,设置大于0的乘子λ和模数m两个函数参数值,m是小于等于L的正整数,定义IP地址X的32个比特按顺序分别为X[1]、X[2]、...、X[32],定义Y是IP地址X匿名化以后的地址,其对应的32个比特按顺序分别为Y[1]、Y[2]、...、Y[32],设置当前计算的IP地址前缀长度i等于0,定义a是IP地址前缀长度为i时对应的正整数,定义i等于0时a等于0,进入第二步;
第二步:计算当前的IP地址前缀长度
如果当前IP地址X的前缀长度i小于32,则设置前缀长度i增加1,进入第三步;否则进入到第七步;
第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度i对应的正整数a为前缀长度i-1对应的正整数a乘以2加上IP地址X第i个比特对应的比特值X[i],进入到第四步;
第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度i所对应的哈希值s,s=(λ·a)mod m,进入第五步;
第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应s+1位置的比特值b,进入到第六步;
第六步:匿名化IP地址的第i个比特
如果比特值b是0,则直接将IP地址X第i个比特直接赋值给匿名化后的IP地址Y的第i个比特Y[i]=X[i],回到第二步,如果比特值b是1,则将IP地址X第i个比特翻转后赋值给匿名化后的IP地址Y的第i个比特,即如果X[i]是0,则Y[i]=1,如果X[i]是1,则Y[i]=0,回到第二步;
第七步:输出匿名化的IP地址
将IP地址X匿名化后的IP地址Y输出,IP地址X匿名化结束。
图1、图2、图3是比特串和哈希函数组合的IP地址前缀保留匿名化方法具体实施方式中涉及的匿名化函数树示意图、匿名化方法示意图和方法流程图,该例子要匿名化一个10110000110000000011111111111110的IP地址,
本发明实施举例的具体技术步骤如下:
(1)第一步:设置参数
设置一个长度34的随机比特串S=1010101010101010101010101010101010,设置非负数的乘子λ=1和模数m=32,定义IP地址X的32个比特按顺序分别为X[1]、X[2]、...、X[32],定义Y是IP地址X匿名化以后的地址,其对应的32个比特按顺序分别为Y[1]、Y[2]、...、Y[32],定义i是当前计算的IP地址前缀长度,设置i等于0,定义a是IP地址前缀长度为i时对应的整数,定义i等于0时a等于0,进入(2)第二步;
(2)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=0小于32,则设置前缀长度i增加1,进入(3)第三步;
(3)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度1对应的正整数是由前缀长度0对应的正整数乘以2加上IP地址X第i个比特对应的比特值1,即1=0*2+1,进入到(4)第四步;
(4)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度i所对应的哈希值s,s=(λ·a)mod m=1 mod 32=1,进入(5)第五步;
(5)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应s+1=2位置的比特值b为0,进入到(6)第六步;
(6)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第1个比特1直接赋值给匿名化后的IP地址Y的第1个比特Y[1]=1,回到(7)第二步;
(7)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=1小于32,则设置前缀长度i增加1为2,进入(8)第三步;
(8)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度2对应的正整数是由前缀长度1对应的正整数1乘以2加上IP地址X第2个比特对应的比特值0,即1*2+0=2,进入到(9)第四步;
(9)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度2所对应的哈希值s,s=(λ·a)mod m=2mod 32=2,进入(10)第五步;
(10)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应s+1=3位置的比特值b为1,进入到(11)第六步;
(11)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第2个比特翻转后赋值给匿名化后的IP地址Y的第2个比特,X[2]是0,则Y[2]=1,回到(12)第二步;
(12)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=2小于32,则设置前缀长度i增加1为3,进入(13)第三步;
(14)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度3对应的正整数是由前缀长度2对应的正整数2乘以2加上IP地址X第3个比特对应的比特值1,即2*2+1=5,进入到(15)第四步;
(15)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度3所对应的哈希值s,s=(λ·a)mod m=5mod 32=5,进入(16)第五步;
(16)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应5+1=6位置的比特值b为0,进入到(17)第六步;
(17)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第3个比特直接赋值给匿名化后的IP地址Y的第3个比特Y[3]=X[3]=1,回到(18)第二步;
(18)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=3小于32,则设置前缀长度i增加1为4,进入(19)第三步;
(19)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度4对应的正整数是由前缀长度3对应的正整数5乘以2加上IP地址X第4个比特对应的比特值1,即5*2+1=11,进入到(20)第四步;
(20)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度4所对应的哈希值s,s=(λ·a)modm=11mod 32=11,进入(21)第五步;
(21)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应11+1=12位置的比特值b为0,进入到(22)第六步;
(22)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第4个比特直接赋值给匿名化后的IP地址Y的第4个比特Y[4]=X[4]=1,回到(23)第二步;
(23)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=4小于32,则设置前缀长度i增加1为5,进入(24)第三步;
(24)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度5对应的正整数是由前缀长度4对应的正整数11乘以2加上IP地址X第5个比特对应的比特值0,即11*2+0=22,进入到(25)第四步;
(25)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度5所对应的哈希值s,s=(λ·a)mod m=22mod 32=22,进入(26)第五步;
(26)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应22+1=23位置的比特值b为1,进入到(27)第六步;
(27)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第5个比特翻转后赋值给匿名化后的IP地址Y的第5个比特,即X[5]是0,则Y[5]=1,回到(28)第二步;
(28)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=5小于32,则设置前缀长度i增加1为6,进入(29)第三步;
(29)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度6对应的正整数是由前缀长度5对应的正整数22乘以2加上IP地址X第6个比特对应的比特值0,即22*2+0=44,进入到(30)第四步;
(30)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度6所对应的哈希值s,s=(λ·a)mod m=44 mod 32=12,进入(31)第五步;
(31)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应12+1=13位置的比特值b为1,进入到(32)第六步;
(32)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第6个比特翻转后赋值给匿名化后的IP地址Y的第6个比特,即X[6]是0,则Y[6]=1,回到(33)第二步;
(33)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=6小于32,则设置前缀长度i增加1为7,进入(34)第三步;
(34)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度7对应的正整数是由前缀长度6对应的正整数44乘以2加上IP地址X第7个比特对应的比特值0,即44*2+0=88,进入到(35)第四步;
(35)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度7所对应的哈希值s,s=(λ·a)mod m=88 mod 32=24,进入(36)第五步;
(36)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应24+1=25位置的比特值b为1,进入到(37)第六步;
(37)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第7个比特翻转后赋值给匿名化后的IP地址Y的第7个比特,即X[7]是0,则Y[7]=1,回到(38)第二步;
(38)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=7小于32,则设置前缀长度i增加1为8,进入(39)第三步;
(39)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度8对应的正整数是由前缀长度7对应的正整数88乘以2加上IP地址X第8个比特对应的比特值0,即88*2+0=176,进入到(40)第四步;
(40)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度8所对应的哈希值s,s=(λ·a)mod m=176 mod 32=16,进入(41)第五步;
(41)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应16+1=17位置的比特值b为1,进入到(42)第六步;
(42)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第8个比特翻转后赋值给匿名化后的IP地址Y的第8个比特,即X[8]是0,则Y[8]=1,回到(43)第二步;
(43)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=8小于32,则设置前缀长度i增加1为9,进入(44)第三步;
(44)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度9对应的正整数是由前缀长度8对应的正整数176乘以2加上IP地址X第9个比特对应的比特值1,即176*2+1=353,进入到(45)第四步;
(45)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度9所对应的哈希值s,s=(λ·a)mod m=353 mod 32=1,进入(46)第五步;
(46)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应1+1=2位置的比特值b为0,进入到(47)第六步;
(47)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第9个比特直接赋值给匿名化后的IP地址Y的第9个比特Y[9]=X[9]=1,回到(48)第二步;
(48)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=9小于32,则设置前缀长度i增加1为10,进入(49)第三步;
(49)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度10对应的正整数是由前缀长度9对应的正整数353乘以2加上IP地址X第10个比特对应的比特值1,即353*2+1=707,进入到(50)第四步;
(50)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度10所对应的哈希值s,s=(λ·a)mod m=707 mod 32=3,进入(51)第五步;
(51)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应3+1=4位置的比特值b为0,进入到(52)第六步;
(52)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第10个比特直接赋值给匿名化后的IP地址Y的第10个比特Y[10]=X[10]=1,回到(53)第二步;
(53)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=10小于32,则设置前缀长度i增加1为11,进入(54)第三步;
(54)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度11对应的正整数是由前缀长度10对应的正整数707乘以2加上IP地址X第11个比特对应的比特值0,即707*2+0=1414,进入到(55)第四步;
(55)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度11所对应的哈希值s,s=(λ·a)mod m=1414 mod 32=6,进入(56)第五步;
(56)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应6+1=7位置的比特值b为1,进入到(57)第六步;
(57)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第11个比特翻转后赋值给匿名化后的IP地址Y的第11个比特,X[11]是0,则Y[11]=1,回到(58)第二步;
(58)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=11小于32,则设置前缀长度i增加1为12,进入(59)第三步;
(59)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度12对应的正整数是由前缀长度11对应的正整数1414乘以2加上IP地址X第12个比特对应的比特值0,即1414*2+0=2828,进入到(60)第四步;
(60)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度12所对应的哈希值s,s=(λ·a)mod m=2828 mod 32=12,进入(61)第五步;
(61)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应12+1=13位置的比特值b为1,进入到(62)第六步;
(62)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第12个比特翻转后赋值给匿名化后的IP地址Y的第12个比特,X[12]是0,则Y[12]=1,回到(63)第二步;
(63)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=12小于32,则设置前缀长度i增加1为13,进入(64)第三步;
(64)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度13对应的正整数是由前缀长度12对应的正整数2828乘以2加上IP地址X第13个比特对应的比特值0,即2828*2+0=5656,进入到(65)第四步;
(65)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度13所对应的哈希值s,s=(λ·a)mod m=5656 mod 32=24,进入(66)第五步;
(66)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应24+1=25位置的比特值b为1,进入到(67)第六步;
(67)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第13个比特翻转后赋值给匿名化后的IP地址Y的第13个比特,X[13]是0,则Y[13]=1,回到(68)第二步;
(68)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=13小于32,则设置前缀长度i增加1为14,进入(69)第三步;
(69)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度14对应的正整数是由前缀长度13对应的正整数5656乘以2加上IP地址X第14个比特对应的比特值0,即5656*2+0=11312,进入到(70)第四步;
(70)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度14所对应的哈希值s,s=(λ·a)mod m=11312 mod 32=16,进入(71)第五步;
(71)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应16+1=17位置的比特值b为1,进入到(72)第六步;
(72)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第14个比特翻转后赋值给匿名化后的IP地址Y的第14个比特,X[14]是0,则Y[14]=1,回到(73)第二步;
(73)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=14小于32,则设置前缀长度i增加1为15,进入(74)第三步;
(74)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度15对应的正整数是由前缀长度14对应的正整数11312乘以2加上IP地址X第15个比特对应的比特值0,即11312*2+0=22624,进入到(75)第四步;
(75)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度15所对应的哈希值s,s=(λ·a)mod m=22624 mod 32=0,进入(76)第五步;
(76)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应0+1=1位置的比特值b为1,进入到(77)第六步;
(77)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第15个比特翻转后赋值给匿名化后的IP地址Y的第15个比特,X[15]是0,则Y[15]=1,回到(78)第二步;
(78)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=15小于32,则设置前缀长度i增加1为16,进入(79)第三步;
(79)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度16对应的正整数是由前缀长度15对应的正整数22624乘以2加上IP地址X第16个比特对应的比特值0,即22624*2+0=45248,进入到(80)第四步;
(80)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度16所对应的哈希值s,s=(λ·a)mod m=45248 mod 32=0,进入(81)第五步;
(81)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应0+1=1位置的比特值b为1,进入到(82)第六步;
(82)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第16个比特翻转后赋值给匿名化后的IP地址Y的第16个比特,X[16]是0,则Y[16]=1,回到(83)第二步;
(83)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=16小于32,则设置前缀长度i增加1为17,进入(84)第三步;
(84)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度17对应的正整数是由前缀长度16对应的正整数45248乘以2加上IP地址X第17个比特对应的比特值0,即45248*2+0=90496,进入到(85)第四步;
(85)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度17所对应的哈希值s,s=(λ·a)mod m=90496 mod 32=0,进入(86)第五步;
(86)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应0+1=1位置的比特值b为1,进入到(87)第六步;
(87)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第17个比特翻转后赋值给匿名化后的IP地址Y的第17个比特,X[17]是0,则Y[17]=1,回到(88)第二步;
(88)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=17小于32,则设置前缀长度i增加1为18,进入(89)第三步;
(89)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度18对应的正整数是由前缀长度17对应的正整数90496乘以2加上IP地址X第18个比特对应的比特值0,即90496*2+0=180992,进入到(90)第四步;
(90)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度18所对应的哈希值s,s=(λ·a)mod m=180992 mod 32=0,进入(91)第五步;
(91)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应0+1=1位置的比特值b为1,进入到(92)第六步;
(92)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第18个比特翻转后赋值给匿名化后的IP地址Y的第18个比特,X[18]是0,则Y[18]=1,回到(93)第二步;
(93)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=18小于32,则设置前缀长度i增加1为19,进入(94)第三步;
(94)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度19对应的正整数是由前缀长度18对应的正整数180992乘以2加上IP地址X第19个比特对应的比特值1,即180992*2+1=361985,进入到(95)第四步;
(95)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度19所对应的哈希值s,s=(λ·a)mod m=361985 mod 32=1,进入(96)第五步;
(96)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应1+1=2位置的比特值b为0,进入到(97)第六步;
(97)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第19个比特直接赋值给匿名化后的IP地址Y的第19个比特Y[19]=X[19]=1,回到(98)第二步;
(98)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=19小于32,则设置前缀长度i增加1为20,进入(99)第三步;
(99)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度20对应的正整数是由前缀长度19对应的正整数361985乘以2加上IP地址X第20个比特对应的比特值1,即361985*2+1=723971,进入到(100)第四步;
(100)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度20所对应的哈希值s,s=(λ·a)mod m=723971 mod 32=3,进入(101)第五步;
(101)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应3+1=4位置的比特值b为0,进入到(102)第六步;
(102)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第20个比特直接赋值给匿名化后的IP地址Y的第20个比特Y[20]=X[20]=1,回到(103)第二步;
(103)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=20小于32,则设置前缀长度i增加1为21,进入(104)第三步;
(104)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度21对应的正整数是由前缀长度20对应的正整数723971乘以2加上IP地址X第21个比特对应的比特值1,即723971*2+1=1447943,进入到(105)第四步;
(105)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度21所对应的哈希值s,s=(λ·a)mod m=1447943 mod 32=7,进入(106)第五步;
(106)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应7+1=8位置的比特值b为0,进入到(107)第六步;
(107)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第21个比特直接赋值给匿名化后的IP地址Y的第21个比特Y[21]=X[21]=1,回到(108)第二步;
(108)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=21小于32,则设置前缀长度i增加1为22,进入(109)第三步;
(109)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度22对应的正整数是由前缀长度21对应的正整数1447943乘以2加上IP地址X第22个比特对应的比特值1,即1447943*2+1=2895887,进入到(110)第四步;
(110)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度22所对应的哈希值s,s=(λ·a)mod m=2895887mod 32=15,进入(111)第五步;
(111)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应15+1=16位置的比特值b为0,进入到(112)第六步;
(112)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第22个比特直接赋值给匿名化后的IP地址Y的第22个比特Y[22]=X[22]=1,回到(113)第二步;
(113)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=22小于32,则设置前缀长度i增加1为23,进入(114)第三步;
(114)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度23对应的正整数是由前缀长度22对应的正整数2895887乘以2加上IP地址X第23个比特对应的比特值1,即2895887*2+1=5791775,进入到(115)第四步;
(115)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度23所对应的哈希值s,s=(λ·a)mod m=5791775 mod 32=31,进入(116)第五步;
(116)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应31+1=32位置的比特值b为0,进入到(117)第六步;
(117)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第23个比特直接赋值给匿名化后的IP地址Y的第23个比特Y[23]=X[23]=1,回到(118)第二步;
(118)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=23小于32,则设置前缀长度i增加1为24,进入(119)第三步;
(119)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度24对应的正整数是由前缀长度23对应的正整数5791775乘以2加上IP地址X第24个比特对应的比特值1,即5791775*2+1=11583551,进入到(120)第四步;
(120)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度24所对应的哈希值s,s=(λ·a)mod m=11583551 mod 32=31,进入(121)第五步;
(121)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应31+1=32位置的比特值b为0,进入到(122)第六步;
(122)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第24个比特直接赋值给匿名化后的IP地址Y的第24个比特Y[24]=X[24]=1,回到(123)第二步;
(123)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=24小于32,则设置前缀长度i增加1为25,进入(124)第三步;
(124)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度25对应的正整数是由前缀长度24对应的正整数11583551乘以2加上IP地址X第25个比特对应的比特值1,即11583551*2+1=23167103,进入到(125)第四步;
(125)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度25所对应的哈希值s,s=(λ·a)mod m=23167103 mod 32=31,进入(126)第五步;
(126)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应31+1=32位置的比特值b为0,进入到(127)第六步;
(127)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第25个比特直接赋值给匿名化后的IP地址Y的第25个比特Y[25]=X[25]=1,回到(128)第二步;
(128)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=25小于32,则设置前缀长度i增加1为26,进入(129)第三步;
(129)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度26对应的正整数是由前缀长度25对应的正整数23167103乘以2加上IP地址X第26个比特对应的比特值1,即23167103*2+1=46334207,进入到(130)第四步;
(130)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度26所对应的哈希值s,s=(λ·a)mod m=46334207 mod 32=31,进入(131)第五步;
(131)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应31+1=32位置的比特值b为0,进入到(132)第六步;
(132)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第26个比特直接赋值给匿名化后的IP地址Y的第26个比特Y[26]=X[26]=1,回到(133)第二步;
(133)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=26小于32,则设置前缀长度i增加1为27,进入(134)第三步;
(134)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度27对应的正整数是由前缀长度26对应的正整数46334207乘以2加上IP地址X第27个比特对应的比特值1,即46334207*2+1=92668415,进入到(135)第四步;
(135)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度27所对应的哈希值s,s=(λ·a)mod m=92668415 mod 32=31,进入(136)第五步;
(136)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应31+1=32位置的比特值b为0,进入到(137)第六步;
(137)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第27个比特直接赋值给匿名化后的IP地址Y的第27个比特Y[27]=X[27]=1,回到(138)第二步;
(138)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=27小于32,则设置前缀长度i增加1为28,进入(139)第三步;
(139)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度28对应的正整数是由前缀长度27对应的正整数92668415乘以2加上IP地址X第28个比特对应的比特值1,即92668415*2+1=185336831,进入到(140)第四步;
(140)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度28所对应的哈希值s,s=(λ·a)mod m=185336831 mod 32=31,进入(141)第五步;
(141)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应31+1=32位置的比特值b为0,进入到(142)第六步;
(142)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第28个比特直接赋值给匿名化后的IP地址Y的第28个比特Y[28]=X[28]=1,回到(143)第二步;
(144)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=28小于32,则设置前缀长度i增加1为29,进入(145)第三步;
(145)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度29对应的正整数是由前缀长度28对应的正整数185336831乘以2加上IP地址X第29个比特对应的比特值1,即185336831*2+1=370673663,进入到(146)第四步;
(146)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度29所对应的哈希值s,s=(λ·a)mod m=370673663 mod 32=31,进入(147)第五步;
(147)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应31+1=32位置的比特值b为0,进入到(148)第六步;
(148)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第29个比特直接赋值给匿名化后的IP地址Y的第29个比特Y[29]=X[29]=1,回到(149)第二步;
(149)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=29小于32,则设置前缀长度i增加1为30,进入(150)第三步;
(150)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度30对应的正整数是由前缀长度29对应的正整数370673663乘以2加上IP地址X第30个比特对应的比特值1,即370673663*2+1=741347327,进入到(151)第四步;
(151)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度30所对应的哈希值s,s=(λ·a)mod m=741347327 mod 32=31,进入(152)第五步;
(152)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应31+1=32位置的比特值b为0,进入到(153)第六步;
(153)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第30个比特直接赋值给匿名化后的IP地址Y的第30个比特Y[30]=X[30]=1,回到(154)第二步;
(154)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=30小于32,则设置前缀长度i增加1为31,进入(155)第三步;
(155)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度31对应的正整数是由前缀长度30对应的正整数741347327乘以2加上IP地址X第31个比特对应的比特值1,即741347327*2+1=1482694655,进入到(156)第四步;
(156)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度31所对应的哈希值s,s=(λ·a)mod m=1482694655 mod 32=31,进入(157)第五步;
(157)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应31+1=32位置的比特值b为0,进入到(158)第六步;
(158)第六步:匿名化IP地址的第i个比特
比特值b是0,则直接将IP地址X第31个比特直接赋值给匿名化后的IP地址Y的第31个比特Y[31]=X[31]=1,回到(159)第二步;
(159)第二步:计算当前的IP地址前缀长度
当前X的前缀长度i=31小于32,则设置前缀长度i增加1为32,进入(160)第三步;
(160)第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度32对应的正整数是由前缀长度31对应的正整数1482694655乘以2加上IP地址X第32个比特对应的比特值0,即1482694655*2+0=2965389310,进入到(161)第四步;
(161)第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度32所对应的哈希值s,s=(λ·a)mod m=2965389310mod 32=30,进入(162)第五步;
(162)第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应30+1=31位置的比特值b为1,进入到(163)第六步;
(163)第六步:匿名化IP地址的第i个比特
比特值b是1,则将IP地址X第32个比特翻转后赋值给匿名化后的IP地址Y的第32个比特,X[32]是0,则Y[32]=1,回到(164)第二步;
(164)第二步:计算当前的IP地址前缀长度
当前IP地址X的前缀长度i等于32,进入到(165)第七步;
(165)第七步:输出匿名化的IP地址
将IP地址X匿名化后的IP地址Y输出,IP地址X匿名化结束。
IP地址X  10110000 11000000 00111111 11111110  的匿名化地址
      Y  11111111 11111111 11111111 11111111

Claims (1)

1.一种比特串和哈希函数组合的网络地址前缀保留的匿名化方法,其特征是定义一个以IP地址前缀比特串所对应的十进制整数为输入的地址前缀哈希函数和一个随机比特串,地址前缀哈希函数将IP地址前缀长度为i的IP地址前缀比特串生成哈希值,然后查找随机比特串上所对应哈希值位置上的比特值,将该比特值与需要被匿名化的IP地址的第i个比特进行异或运算,并将异或后的结果作为该IP地址的第i个比特的匿名化比特,对IP地址中的每个比特都采用上述方法进行处理,实现对整个IP地址的匿名化处理,具体技术步骤如下:
第一步:设置参数
设置一个长度为L的随机比特串S,L是大于等于32的正整数,定义一个地址前缀哈希函数为(λ·a)mod m,设置大于0的乘子λ和模数m两个函数参数值,m是小于等于L的正整数,定义IP地址X的32个比特按顺序分别为X[1]、X[2]、...、X[32],定义Y是IP地址X匿名化以后的地址,其对应的32个比特按顺序分别为Y[1]、Y[2]、...、Y[32],设置当前计算的IP地址前缀长度i等于0,定义a是IP地址前缀长度为i时对应的正整数,定义i等于0时a等于0,进入第二步;
第二步:计算当前的IP地址前缀长度
如果当前IP地址X的前缀长度i小于32,则设置前缀长度i增加1,进入第三步;否则进入到第七步;
第三步:计算前缀长度i的IP地址X对应的正整数
前缀长度i对应的正整数a为前缀长度i-1对应的正整数a乘以2加上IP地址X第i个比特对应的比特值X[i],进入到第四步;
第四步:采用地址前缀哈希函数计算哈希值
采用地址前缀哈希函数计算当前前缀长度i所对应的哈希值s,s=(λ·a)mod m,进入第五步;
第五步:根据哈希值查找随机比特串所在位置的比特值
根据哈希值s值查找随机比特串S所对应s+1位置的比特值b,进入到第六步;
第六步:匿名化IP地址的第i个比特
如果比特值b是0,则直接将IP地址X第i个比特直接赋值给匿名化后的IP地址Y的第i个比特Y[i]=X[i],回到第二步,如果比特值b是1,则将IP地址X第i个比特翻转后赋值给匿名化后的IP地址Y的第i个比特,即如果X[i]是0,则Y[i]=1,如果X[i]是1,则Y[i]=0,回到第二步;
第七步:输出匿名化的IP地址
将IP地址X匿名化后的IP地址Y输出,IP地址X匿名化结束。
CN200910262843A 2009-12-11 2009-12-11 比特串和哈希函数组合的网络地址前缀保留的匿名化方法 Active CN101778142B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910262843A CN101778142B (zh) 2009-12-11 2009-12-11 比特串和哈希函数组合的网络地址前缀保留的匿名化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910262843A CN101778142B (zh) 2009-12-11 2009-12-11 比特串和哈希函数组合的网络地址前缀保留的匿名化方法

Publications (2)

Publication Number Publication Date
CN101778142A true CN101778142A (zh) 2010-07-14
CN101778142B CN101778142B (zh) 2012-10-24

Family

ID=42514466

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910262843A Active CN101778142B (zh) 2009-12-11 2009-12-11 比特串和哈希函数组合的网络地址前缀保留的匿名化方法

Country Status (1)

Country Link
CN (1) CN101778142B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546293A (zh) * 2011-12-20 2012-07-04 东南大学 基于哈希比特串复用的高速网络流量网络地址测量方法
CN103095864A (zh) * 2013-01-18 2013-05-08 清华大学 基于哈希算法的面向IPv6过渡的IPv4地址及端口段池维护方法
CN105450789A (zh) * 2014-09-19 2016-03-30 德克萨斯仪器股份有限公司 无线传感器网络中互联网协议版本6地址的压缩
CN108075888A (zh) * 2016-11-15 2018-05-25 北京京东尚科信息技术有限公司 动态url生成方法及装置
CN112187743A (zh) * 2020-09-14 2021-01-05 北京云杉世纪网络科技有限公司 一种基于ip地址最长前缀的网络策略匹配方法及系统
CN113518991A (zh) * 2019-01-10 2021-10-19 日本电信电话株式会社 秘密数组访问装置、秘密数组访问方法以及程序
CN117221224A (zh) * 2023-11-09 2023-12-12 格创通信(浙江)有限公司 一种表项构建、查找方法、装置、网络设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7433355B2 (en) * 2004-02-09 2008-10-07 Alcatel Lucent Filter based longest prefix match algorithm
US20070071233A1 (en) * 2005-09-27 2007-03-29 Allot Communications Ltd. Hash function using arbitrary numbers
CN101399667A (zh) * 2007-09-29 2009-04-01 索尼(中国)有限公司 产生快速安全哈希函数的步函数装置和消息扩展方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546293A (zh) * 2011-12-20 2012-07-04 东南大学 基于哈希比特串复用的高速网络流量网络地址测量方法
CN102546293B (zh) * 2011-12-20 2014-08-06 东南大学 基于哈希比特串复用的高速网络流量网络地址测量方法
CN103095864A (zh) * 2013-01-18 2013-05-08 清华大学 基于哈希算法的面向IPv6过渡的IPv4地址及端口段池维护方法
CN103095864B (zh) * 2013-01-18 2015-05-20 清华大学 基于哈希算法的面向IPv6过渡的IPv4地址及端口段池维护方法
CN105450789A (zh) * 2014-09-19 2016-03-30 德克萨斯仪器股份有限公司 无线传感器网络中互联网协议版本6地址的压缩
CN108075888A (zh) * 2016-11-15 2018-05-25 北京京东尚科信息技术有限公司 动态url生成方法及装置
CN108075888B (zh) * 2016-11-15 2021-01-26 北京京东尚科信息技术有限公司 动态url生成方法及装置、存储介质、电子设备
CN113518991A (zh) * 2019-01-10 2021-10-19 日本电信电话株式会社 秘密数组访问装置、秘密数组访问方法以及程序
CN112187743A (zh) * 2020-09-14 2021-01-05 北京云杉世纪网络科技有限公司 一种基于ip地址最长前缀的网络策略匹配方法及系统
CN112187743B (zh) * 2020-09-14 2022-10-28 北京云杉世纪网络科技有限公司 一种基于ip地址最长前缀的网络策略匹配方法及系统
CN117221224A (zh) * 2023-11-09 2023-12-12 格创通信(浙江)有限公司 一种表项构建、查找方法、装置、网络设备及存储介质
CN117221224B (zh) * 2023-11-09 2024-02-06 格创通信(浙江)有限公司 一种表项构建、查找方法、装置、网络设备及存储介质

Also Published As

Publication number Publication date
CN101778142B (zh) 2012-10-24

Similar Documents

Publication Publication Date Title
CN101778142B (zh) 比特串和哈希函数组合的网络地址前缀保留的匿名化方法
Aljawarneh et al. A resource-efficient encryption algorithm for multimedia big data
Zhang et al. Image encryption algorithm based on quantum chaotic map and DNA coding
Wang et al. A novel block cryptosystem based on the coupled chaotic map lattice
CN103595539A (zh) 保留格式的数值型个人识别信息的加密方法
KR20090041545A (ko) 암호화된 수치 데이터 검색 시스템 및 그 방법
US8619985B2 (en) Table splitting for cryptographic processes
CN108768617A (zh) 一种基于传统分组密码的保持格式加密方法
CN101394268A (zh) 基于广义信息域的高级加密系统及方法
RU2124814C1 (ru) Способ шифрования блоков цифровых данных
CN106874516A (zh) 一种云存储中基于kcb树和布隆过滤器的高效密文检索方法
CN107070636A (zh) 一种标准密文输出格式的商密sm4算法的白盒软件实现方法
CN102546293B (zh) 基于哈希比特串复用的高速网络流量网络地址测量方法
CN104040935B (zh) 一种数据加密、解密的方法及设备
CN105933120A (zh) 一种基于Spark平台的口令哈希值恢复方法和装置
Li A Symmetric Cryptography Algorithm in Wireless Sensor Network Security.
Luo et al. A block cryptographic algorithm for wireless sensor networks based on hybrid chaotic map
Biryukov et al. The secret structure of the S-box of Streebog, Kuznechik and Stribob
Srisakthi et al. Towards the design of a stronger AES: AES with key dependent shift rows (KDSR)
CN1640051B (zh) 使具有秘密密钥的电子密码装置安全的方法
Parihar et al. Blowfish algorithm: a detailed study
Wadi et al. A low cost implementation of modified advanced encryption standard algorithm using 8085A microprocessor
Dass et al. Hybrid coherent encryption scheme for multimedia big data management using cryptographic encryption methods
CN101364868A (zh) 基于广义信息域的伪随机码发生器及其发生方法
CN101848079A (zh) 一种面向字、带记忆的序列扰动方法及加密方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SOWTHEAST UNIV.

Effective date: 20131018

Owner name: HAIAN CHANGDA TECHNOLOGY TRANSFER CENTER CO., LTD.

Free format text: FORMER OWNER: SOWTHEAST UNIV.

Effective date: 20131018

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 210096 NANJING, JIANGSU PROVINCE TO: 226600 NANTONG, JIANGSU PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20131018

Address after: 226600 No. 8 Yingbin Road, software park, Haian County, Jiangsu Province

Patentee after: Haian Changzhou University Technology Transfer Center Co., Ltd.

Patentee after: Southeast University

Address before: 210096 Jiangsu city Nanjing Province four pailou No. 2

Patentee before: Southeast University