数据挖掘中关联规则隐藏与匿名指纹方案的研究
在数据挖掘领域,保护敏感信息和数字版权是两个重要的研究方向。本文将介绍关联规则隐藏算法的相关内容,包括算法的输入输出、性能评估,以及匿名指纹方案的模型、存在的问题等。
关联规则隐藏算法
关联规则隐藏算法的目的是对数据库进行转换,使得指定的规则无法被挖掘出来。以下是算法的输入输出和主要流程:
-
输入
:需要隐藏的规则集合
Rh
、源数据库
D
、最小置信度阈值
min conf
和最小支持度阈值
min supp
。
-
输出
:转换后的数据库
D
,使得
Rh
中的规则无法被挖掘。
下面是相关算法的代码实现:
INPUT: a set Rh of rules to hide, the source
database D, the min conf threshold,
the min supp threshold
OUTPUT: the database D transformed so
that the rules in Rh cannot be mined
BEGIN
FOREACH rule U IN Rh DO
{
REPEAT UNTIL (conf(U) < min conf
OR supp(U) < min supp )
{
1. T = { t in D / t supports U }
2. choose the transaction t in T
with the lowest number of items
3. choose the item j in U
with the minimum impact on the
(|U| −1)-itemsets
4. delete j from t
5. decrease the support of U by 1
6. recompute the confidence of U
}
7. remove U from Rh
}
END
BEGIN
FOREACH rule U IN Rh DO
{
WHILE (conf(U) ≥min conf
AND supp(U) ≥min supp )
{
T = {t ∈D/ t supports U}
// sort T in ascending order of
// size of the transactions and choose
// the one with the lowest size
t = choose transaction(T)
// choose the item of U
// with the minimum impact on the
// (|U| −1)-itemsets
j = choose item(U)
// set to zero the bit of t.list of items
// that represents item j
set to zero(j, t.list of items)
supp(U)=supp(U) - 1
conf(U)=supp(U)/supp(lhs(U))
}
Rh = Rh −U
}
END
为了评估这些算法的性能,进行了两组试验:
-
第一组试验
:分析当数据库中文字数量增加时,算法的行为。
-
第二组试验
:研究当选择隐藏的规则数量增加时,算法的行为。
以下是试验中使用的数据集:
| 系列 | 数据库大小
|D|
| 文字数量
|I|
| 规则数量
|Rh|
| 平均事务长度
ATL
|
| ---- | ---- | ---- | ---- | ---- |
| 1 | 10:[1k..10k] | 20 | 2 | 5 |
| 2 | 10:[1k..10k] | 30 | 2 | 5 |
| 3 | 10:[1k..10k] | 40 | 2 | 5 |
| 4 | 10:[1k..10k] | 50 | 2 | 5 |
| 系列 |
数据库大小
|D|
|
文字数量
|I|
|
规则数量
|Rh|
|
平均事务长度
ATL
|
|---|---|---|---|---|
| 1 | 10:[1k..10k] | 20 | 2 | 5 |
| 2 | 10:[1k..10k] | 20 | 3 | 5 |
| 3 | 10:[1k..10k] | 20 | 4 | 5 |
下面是算法性能评估的结果:
-
算法 1.a
:隐藏规则集合
Rh
所需的时间为 $O(\sum N(Rj) * {|D|
|I| + |Tj1|
log |Tj1|})$,其中
j
从 1 到
|Rh|
。在约束条件
N(Rj) = 3
下,算法 1.a 的时间与数据库大小呈线性关系,并且与
|I|
和
|Rh|
成正比。
-
算法 1.b
:所需时间为 $O(\sum N(Rj)
{|D|
|I| + |Tj1|
log|Tj1| + |rhs(Rj)|
|I|
|R|})$。试验结果表明,算法 1.b 的时间也与数据库大小、文字数量和规则数量呈线性关系,且算法 1.a 的性能略优于算法 1.b。
-
算法 2.a
:执行时间为 $O(\sum N(Rj)
{|D|
|I| + |Tj1|
log |Tj1| + |Rj|
|I|
|R|})$。如果在每个数据集中选择相同的规则进行隐藏,算法 2.a 的时间与数据库大小成正比,并且随着文字数量和规则数量的增加而线性增加。
数据结构实现
在实现关联规则隐藏算法时,使用了以下数据结构:
-
事务集合(
D
和
T
)
:每个集合表示为一个引用元素的数组,事务表示为一个数组,包含事务 ID、事务中的项目列表和项目数量。
-
规则集合(
Rh
)
:规则表示为一个数组,包含规则的置信度、规则前件和后件的引用,以及规则的来源。
-
大项目集集合(
R
)
:大项目集表示为一个数组,包含项目列表和支持度。
-
文字列表(
I
)
:使用字符串数组表示。
以下是这些数据结构的操作流程:
graph LR
A[开始] --> B[生成集合 T]
B --> C[计算汉明距离]
C --> D[选择最佳事务]
D --> E[选择最佳项目]
E --> F[结束]
-
生成集合
T:通过分析数据库D中的每个事务t,检查事务中的项目列表是否等于大项目集的项目列表(对于算法 1.a,检查t中的项目是否是大项目集的真子集)。 - 计算汉明距离 :计算两个项目列表之间的距离,通过比较每个文字(键)对应的值的差异来计算。
-
选择最佳事务
:选择支持大项目集
l的事务中,非零项目数量最少的事务,以最小化对其他规则的影响。 -
选择最佳项目
:选择大项目集
l中,删除后对大项目集集合影响最小的项目,即从(|l| -1)项目集中选择支持度最低的项目。
匿名指纹方案
匿名指纹方案用于保护数字商品的版权,允许买家匿名购买指纹数字商品,同时在非法分发时可以撤销匿名性。
匿名指纹方案的模型
匿名指纹方案涉及多个参与方:商家
M
、买家
B
、注册中心
RC
和仲裁者
A
。该方案由多个子协议组成,主要步骤如下:
1.
注册子协议
:买家
B
在注册中心
RC
注册,双方获得注册记录。
2.
指纹子协议
:注册后的买家
B
从商家
M
购买数据项,并与商家共同进行指纹处理。商家获得购买记录,买家获得指纹数据项。
3.
识别子协议
:如果商家发现非法分发的副本,提取信息并从购买记录中获取额外信息,可能需要注册中心的合作,最终获得包含买家真实身份的证明。
4.
审判子协议
:仲裁者
A
检查商家提供的证明,做出判决。
匿名指纹方案的主要安全要求如下:
-
商家安全
:商家能够识别非法分发数据项的叛徒,并获得能说服任何诚实仲裁者的背叛证明。
-
买家安全
:诚实的买家不应被错误识别为叛徒,并且买家的匿名性必须得到保护。
-
注册中心安全
:诚实的注册中心不应被不当识别为叛徒。
匿名指纹方案存在的问题
一些最近提出的匿名指纹方案存在严重的缺点,如 [Dom98, DJ98, Dom99] 中的方案只提供了较弱的匿名性,并且允许商家欺骗诚实的买家。这些方案被称为半匿名指纹方案。
下面是匿名指纹方案的主要流程:
graph LR
A[买家注册] --> B[指纹处理]
B --> C[发现非法副本]
C --> D[识别叛徒]
D --> E[审判]
关联规则隐藏算法通过对数据库进行转换,保护敏感规则不被挖掘。不同的算法在性能上有所差异,并且与数据库大小、文字数量和规则数量等因素有关。匿名指纹方案为数字商品的版权保护提供了一种解决方案,但目前一些方案存在匿名性不足和安全漏洞等问题,需要进一步改进。
关联规则隐藏算法的详细分析
在关联规则隐藏算法中,各个算法的时间复杂度和性能表现与多个因素密切相关。从算法 1.a 的时间复杂度 $O(\sum N(Rj) * {|D| |I| + |Tj1| log |Tj1|})$ 可以看出,$N(Rj)$ 表示隐藏规则 $Rj$ 时内循环的执行次数,$|D|$ 是数据库中的事务数量,$|I|$ 是数据库中的文字数量,$|Tj1|$ 是第一次执行内循环时部分支持规则 $Rj$ 左侧的事务数量。当 $N(Rj)$ 固定为 3 时,算法 1.a 的时间与数据库大小呈线性关系,这意味着随着数据库规模的增大,算法的执行时间会相应地线性增加。同时,它与 $|I|$ 和 $|Rh|$ 成正比,说明文字数量和需要隐藏的规则数量越多,算法执行时间越长。
算法 1.b 的时间复杂度 $O(\sum N(Rj) {|D| |I| + |Tj1| log|Tj1| + |rhs(Rj)| |I| |R|})$ 中,$|rhs(Rj)|$ 是规则 $Rj$ 右侧项目集中的文字数量。与算法 1.a 相比,多了 $|rhs(Rj)| |I| *|R|$ 这一项,这使得算法 1.b 的时间复杂度相对较高,所以在试验结果中算法 1.a 的性能略优于算法 1.b。
算法 2.a 的时间复杂度 $O(\sum N(Rj) {|D| |I| + |Tj1| log |Tj1| + |Rj| |I| *|R|})$ 中,$|Rj|$ 是规则 $Rj$ 中出现的文字数量。同样,当在每个数据集中选择相同的规则进行隐藏时,其时间与数据库大小成正比,并且随着文字数量和规则数量的增加而线性增加。
数据结构操作的重要性
在关联规则隐藏算法的实现中,数据结构的操作起着关键作用。生成集合
T
是后续操作的基础,它通过对数据库
D
中的事务进行筛选,找出支持大项目集的事务。计算汉明距离则用于衡量两个项目列表之间的差异,这在一些算法的决策过程中可能会用到。选择最佳事务和最佳项目的操作,目的是在隐藏规则的过程中,尽量减少对其他规则和数据库整体结构的影响。
例如,选择最佳事务时,选择非零项目数量最少的事务,可以降低对其他规则支持度的影响;选择最佳项目时,从
(|l| -1)
项目集中选择支持度最低的项目,能使删除该项目对大项目集集合的影响最小。这些操作的综合运用,有助于提高关联规则隐藏算法的效率和效果。
匿名指纹方案的改进方向
针对匿名指纹方案存在的问题,如半匿名指纹方案只提供较弱的匿名性和允许商家欺骗诚实买家等情况,需要进行改进。
可以从以下几个方面入手:
1.
加强匿名性
:采用更先进的加密技术和匿名化机制,确保买家在购买和使用过程中的匿名性得到更好的保护。例如,可以使用零知识证明等技术,让商家在不获取买家真实身份信息的情况下完成交易和指纹处理。
2.
防止商家欺骗
:建立更严格的监管机制和惩罚措施,对商家的行为进行约束。同时,在协议设计上增加更多的验证和制衡环节,确保商家不能随意欺骗买家。
3.
提高方案的安全性
:对整个匿名指纹方案进行全面的安全评估和漏洞修复,采用更安全的加密算法和协议,增强方案对各种攻击的抵抗能力。
总结
关联规则隐藏算法和匿名指纹方案在数据挖掘和数字版权保护领域都具有重要的应用价值。关联规则隐藏算法通过对数据库的转换,保护敏感规则不被挖掘,不同算法在性能上存在差异,并且受到数据库大小、文字数量和规则数量等因素的影响。匿名指纹方案允许买家匿名购买指纹数字商品,同时保护数字商品的版权,但目前一些方案存在匿名性不足和安全漏洞等问题。
未来,需要进一步研究和改进这些算法和方案,提高它们的性能和安全性,以更好地满足实际应用的需求。
以下是关联规则隐藏算法和匿名指纹方案的对比表格:
| 类别 | 关联规则隐藏算法 | 匿名指纹方案 |
| ---- | ---- | ---- |
| 目的 | 隐藏数据库中的敏感规则 | 保护数字商品版权,实现买家匿名购买 |
| 参与方 | 无 | 商家、买家、注册中心、仲裁者 |
| 主要操作 | 数据库转换、规则隐藏 | 注册、指纹处理、识别、审判 |
| 安全要求 | 无 | 商家、买家、注册中心的安全 |
graph LR
A[关联规则隐藏算法] --> B[数据库转换]
B --> C[规则隐藏]
D[匿名指纹方案] --> E[注册]
E --> F[指纹处理]
F --> G[识别]
G --> H[审判]
通过以上的分析和总结,我们对关联规则隐藏算法和匿名指纹方案有了更深入的理解,为进一步的研究和应用提供了基础。
超级会员免费看
793

被折叠的 条评论
为什么被折叠?



