三方PAKE协议中哈希函数的使用及序列分类模型研究
1. 三方PAKE协议相关内容
1.1 AP - 3PAKE协议流程
AP - 3PAKE协议是一个三方密码认证密钥交换协议,其流程如下:
1. 客户端A和B分别选择随机数 (x,y\in Z_q),计算 (X = g^x),(Y = g^y),并将 (X^
) 和 (Y^
) 发送给服务器S。
2. 服务器S收到 (X^
) 和 (Y^
) 后,选择随机元素 (z\in Z_q),计算:
- (\overline{X}=X^z),(\overline{Y}=Y^z)
- (pw_{A,2} = G (A, B, R, pw_A, X^
))
- (pw_{B,2} = G (A, B, R, pw_B, Y^
))
- (\overline{X}^
= X \cdot pw_{B,2})
- (\overline{Y}^
= Y \cdot pw_{A,2})
然后将 (\lt R, Y^
, \overline{X}^
, \overline{Y}^
\gt) 和 (\lt R, X^
, \overline{X}^
, \overline{Y}^
\gt) 分别发送给A和B。
3. A收到 (\lt R, Y^
, \overline{X}^
, \overline{Y}^
\gt) 后,计算:
- (pw_{A,2}= G (A, B, R, pw_A, X^
))
- (\overline{Y} = (\frac{\overline{Y}^
}{pw_{A,2}}))
- (K = \overline{Y}^x)
定义会话记录 (T = R||X^
||Y^
||\overline{X}^
||\overline{Y}^
),并计算会话密钥 (SK = H(A||B||S||T||K))。
4. B收到 (\lt R, X^
, \overline{X}^
, \overline{Y}^
\gt) 后,计算:
- (pw_{B,2} = G (A, B, R, pw_B,Y^
))
- (\overline{X} = (\frac{\overline{X}^
}{pw_{B,2}}))
- (K = \overline{X}^y)
定义会话记录 (T = R|X^
|Y^
|\overline{X}^
|\overline{Y}^
),并计算会话密钥 (SK = H(A||B||S||T||K))。
1.2 协议正确性验证
AP - 3PAKE协议的正确性可以通过以下等式验证:
(K = (\frac{\overline{X}^
}{pw_{B,2}})^y = (\frac{\overline{X}\cdot pw_{B,2}}{pw_{B,2}})^y = g^{xyz})
(K = (\frac{\overline{Y}^
}{pw_{A,2}})^x = (\frac{\overline{Y}\cdot pw_{A,2}}{pw_{A,2}})^x = g^{xyz})
从上述流程可以看出,AP - 3PAKE协议需要两轮通信。
1.3 哈希函数的不良实例化及攻击
当哈希函数 (F) 定义为 (F(\cdot) = g^{h(\cdot)})(其中 (h) 是典型的密码哈希函数,如SHA - 1和MD5)时,AP - 3PAKE协议会受到离线字典攻击。假设 (F(\cdot) = g^{h(\cdot)}),则 (pw_{A,1}= g^{h(A,B,pw_A)}) 和 (pw_{B,1} = g^{h(A,B,pw_B)})。若B是恶意客户端,想找出A的密码,可进行如下离线字典攻击:
阶段1
-
B选择两个随机数 (x,y\in Z_q),计算:
- (X^* = g^x)
-
(Y^
= g^y \cdot pw_{B,1}= g^y \cdot g^{h(A,B,pw_B)})
然后将 (X^ ) 伪装成A发送给S,将 (Y^*) 作为自己的消息发送给S。
- S会将 (\lt R, Y^ , \overline{X}^ , \overline{Y}^ \gt) 和 (\lt R, X^ , \overline{X}^ , \overline{Y}^ \gt) 分别发送给A和B,B拦截 (\lt R, Y^ , \overline{X}^ , \overline{Y}^ \gt)。此时,(\overline{X}^ = g^{(x - h(A,B,pw_A))z}\cdot pw_{B,2}),(\overline{Y}^* = g^{yz}\cdot pw_{A,2})。
阶段2
- B计算 (pw_{B,2} = G(A, B, R, pw_B, Y^ )) 和 (K = (\frac{\overline{X}^ }{pw_{B,2}})^y = g^{(x - h(A,B,pw_A))yz})。
- B猜测A的密码 (pw’ A),计算 (pw’ {A,2}= G(A, B, R, pw’ A, X^ )) 和 (K’ = (\frac{\overline{Y}^ }{pw’ {A,2}})^{(x - h(A,B,pw’_A))})。
- B通过检查 (K) 是否等于 (K’) 来验证 (pw’_A) 的正确性。
- B重复步骤2和3,直到找到正确的密码。
这种离线字典攻击可以由任何客户端对其他客户端发起,且不需要受害者的参与。这表明AP - 3PAKE协议的安全性依赖于哈希函数 (F) 的实例化,特别是 (F) 不能实例化为 (F(\cdot) = g^{h(\cdot)}),否则无法保证客户端密码的安全。
1.4 改进协议
为了使AP - 3PAKE协议免受离线字典攻击,提出了一种改进协议。该协议使用一个分组密码 (E),将 (G) 中的元素映射到 (G)。设 ({0, 1}^n) 是密码的密钥空间,每个密钥 (k\in{0, 1}^n) 确定循环群 (G) 上的一个置换 (E_k = E (k, \cdot)),其逆置换为 (D_k)。重新定义哈希函数 (F:{0, 1}^
\to{0, 1}^n),其输出将用作密码的密钥。改进协议的流程如下:
1. 客户端A选择随机数 (x\in Z_q),计算 (X = g^x),(k_{A,1}= F (A, B,pw_A)) 和 (X^
= E_{k_{A,1}} (X)),然后将 (X^
) 发送给服务器S。
2. 客户端B选择随机数 (y\in Z_q),计算 (Y = g^y),(k_{B,1} = F (A B,pw_B)) 和 (Y^
= E_{k_{B,1}} (Y)),然后将 (Y^
) 发送给S。
3. 服务器S收到 (X^
) 和 (Y^
) 后,首先通过计算 (X = D_{k_{A,1}} (X^
)) 和 (Y = D_{k_{B,1}} (Y^
)) 恢复 (X) 和 (Y)。然后选择随机元素 (z\in Z_q),计算:
- (\overline{X}=X^z),(\overline{Y}=Y^z)
- (k_{A,2} = F (A, B, pw_A, X^
))
- (k_{B,2}= F (A, B, pw_B, Y^
))
- (\overline{X}^
= E_{k_{B,2}} (\overline{X}))
- (\overline{Y}^
= E_{k_{A,2}} (\overline{Y}))
最后将 (\lt Y^
, \overline{X}^
, \overline{Y}^
\gt) 和 (\lt X^
, \overline{X}^
, \overline{Y}^
\gt) 分别发送给A和B。
4. A收到 (\lt Y^
, \overline{X}^
, \overline{Y}^
\gt) 后,计算:
- (k_{A,2} = F (A, B, pw_A, X^
))
- (\overline{Y}= D_{k_{A,2}} (\overline{Y}^
))
- (K = \overline{Y}^x)
定义会话记录 (T = X^
|Y^
|\overline{X}^
||\overline{Y}^
),并计算会话密钥 (SK = H (A||B||S||T||K))。
5. B收到 (\lt X^
, \overline{X}^
, \overline{Y}^
\gt) 后,计算:
- (k_{B,2} = F (A, B, pw_B, Y^
))
- (\overline{X}= D_{k_{B,2}} (\overline{X}^
))
- (K = \overline{X}^y)
定义会话记录 (T = X^
|Y^
|\overline{X}^
||\overline{Y}^*),并计算会话密钥 (SK = H (A||B||S||T||K))。
改进协议通过对 (X) 和 (Y) 进行对称加密,破坏了离线字典攻击所需的代数性质,从而有效防止了攻击。同时,如果发现 (X) 或 (Y) 等于1,服务器S应立即中止协议,否则协议仍可能受到变种离线字典攻击。改进协议的效率与AP - 3PAKE协议相当。
2. 基于模式覆盖率的序列分类模型
2.1 研究背景
随着数据挖掘技术的发展,分类成为预测感兴趣数据类别信息的有效技术。然而,现实生活中存在大量按时间戳排序的序列数据,传统分类方法不适用于此类数据。因此,开发序列分类技术来分析序列数据至关重要。
2.2 PCRSCM模型介绍
提出了一种基于模式覆盖率的序列分类模型(PCRSCM),该模型结合了序列模式挖掘和分类技术,主要贡献如下:
1. 一个集成了序列模式挖掘和分类架构的序列分类模型。
2. 一种基于模式覆盖率的估计方法来确定序列分类,该方法可以加快预测速度,并且即使数据存在偏差,也能通过分数计算避免错误判断。
3. 使用一个复杂的评估公式,结合了相似度比较、特征长度、特征支持率和每个类别的序列模式率四种信息,能够更准确地对序列类别进行分类。
2.3 系统架构
PCRSCM模型的系统架构包括两个阶段:
1.
第一阶段
:将序列数据集划分为训练数据集和测试数据集,使用PrefixSpan从训练数据集中找出每个类别的序列模式(记为 (R)),然后从序列模式集 (R) 中删除所有类别之间重复的序列模式,得到缩减后的序列模式集 (U)。
2.
第二阶段
:使用模式覆盖率确定序列是否可以直接预测其类别。首先输入训练数据集,计算每个序列数据的模式覆盖率。从缩减后的序列模式集 (U) 中,确定每个序列具有唯一类别的预测结果(即直接预测)。如果序列的预测类别不唯一,则使用序列模式集 (R) 的类分数进一步区分。
2.4 模式覆盖率计算和直接预测
假设需要预测 (g) 个序列数据,PCRSCM将每个序列数据 (S_j) 与 (U) 进行比较,计算模式覆盖率,即 (U_i) 中每个序列模式是 (S_j) 的子序列的数量比例。例如,假设有序列模式 (P_1=\lt(c)(e)\gt),(P_2=\lt(cd)(e)\gt),序列 (S_1=\lt(a)(cfd)(e)\gt),(S_2=\lt(a)(c)(d)(e)\gt),因为 (P_1) 和 (P_2) 是 (S_1) 的子序列,(S_2) 的子序列只有 (P_1),所以 (S_1) 的模式覆盖率为100%,(S_2) 的模式覆盖率为50%。
计算 (S_j) 与 (U_i) 之间的模式覆盖率后,假设每个序列 (S_j) 在每个类别的覆盖率为 (T_{j,1}, T_{j,2}, \cdots, T_{j,n}),找出 (T_{j,h}=\max{T_{j,1},T_{j,2},\cdots,T_{j,n}})((1\leq h\leq n)),则 (S_j) 的预测类别为 (h)。当每个类别的特征明显时,模式覆盖率可以快速预测序列的类别,避免了计算类分数的时间浪费,并防止因数据偏差导致的错误预测。
2.5 类分数计算和类预测
如果序列没有唯一的最大模式覆盖率,即 (T_{j,h}=T_{j,s}=T_{j,t})((h, s, t\in{1,\cdots,n})),PCRSCM使用类分数计算来进一步确定序列的类别,具体步骤如下:
1.
相似度计算
:参考Laurent等人提出的序列模式相似度计算方法(S2MP)。
2.
模式分数矩阵生成
:为每个类生成模式分数矩阵,矩阵的行表示序列模式集 (R) 中每个类别的序列模式,列表示所有序列数据。矩阵中的值是每个序列 (S_j) 对应每个序列模式的分数。模式分数 (P_{S_{i,k,j}}) 的计算公式为:
(P_{S_{i,k,j}} = Len(P_{i,k})\times SupWg_{i,k}\times SimDeg_{i,k,j}\times ClaWg_{i})
其中:
- (P_{i,k}) 是第 (i) 类中的第 (k) 个序列模式。
- (Len(P_{i,k})) 是 (P_{i,k}) 的长度。
- (SupWg_{i,k}) 是 (P_{i,k}) 的支持度除以第 (i) 类中所有序列模式的支持度之和。
- (SimDeg_{i,k,j}) 是 (P_{i,k}) 与 (S_j) 之间的相似度。
- (ClaWg_{i}) 是第 (i) 类中的序列模式数量除以所有序列模式的数量。
3.
类分数计算
:计算每个类别的模式分数矩阵后,生成类分数矩阵,矩阵的行表示类别,列表示序列数据。矩阵中的值是每个序列 (S_j) 对应每个类别的分数。类分数 (C_{S_{i,j}}) 的计算公式为:
(C_{S_{i,j}}=\sum_{k = 1}^{m_i}P_{S_{i,k,j}})
4.
类预测
:根据类分数矩阵中的值,预测每个序列的类别。如果 (i_{pred}) 的数量大于1,则PCRSCM随机选择一个类别作为预测结果。
2.6 实验结果
使用三种类型的数据集对PCRSCM进行评估,包括合成数据集、使用IBM Quest Synthetic Data Generator生成的合成数据集和真实数据集。设计了11个实验,结果表明PCRSCM在各种数据集上都表现出了优异的预测性能,具体如下:
|实验编号|数据集|实验设置|结果|
| ---- | ---- | ---- | ---- |
|实验1|合成数据集|最小支持度为0.5,序列数据分为三类,训练集18个序列,测试集6个序列|PCRSCM的准确率优于其他方法|
|实验2|C30T2S10N50合成数据集|最小支持度在0.4 - 0.7之间变化,序列分为两类|PCRSCM在每个最小支持度值下的准确率都优于SCM|
|实验3|C30T4S10N50合成数据集|最小支持度在0.4 - 0.7之间变化,序列分为两类|PCRSCM的平均准确率达到95%,优于SCM的87%|
|实验4|C30T10S10N50合成数据集|最小支持度在0.5 - 0.7之间变化,序列分为两类|当最小支持度为0.7时,PCRSCM的预测准确率达到85%|
|实验5|C30T10S8N50合成数据集|平均序列长度(S)在8 - 14之间变化,最小支持度为0.5,序列分为两类|当S为12时,两种分类方法性能最佳,PCRSCM的平均预测准确率为97%,优于SCM的95%|
|实验6|C30T2S10N50合成数据集|平均项集长度(T)在2 - 8之间变化,最小支持度为0.5,序列分为两类|当T为2时,预测较困难,但PCRSCM的准确率为88%,平均准确率为96%,优于SCM的85%|
综上所述,PCRSCM模型在序列分类任务中具有良好的性能,能够有效处理序列数据的分类问题。
3. PCRSCM模型的优势与应用场景分析
3.1 PCRSCM模型的优势总结
PCRSCM模型相较于传统分类方法以及其他序列分类模型,具有显著的优势:
-
高效性
:通过模式覆盖率计算,能够快速对序列进行初步分类。当每个类别的特征明显时,无需进行复杂的类分数计算,节省了大量的计算时间,提高了预测效率。
-
准确性
:采用复杂的评估公式,结合了相似度比较、特征长度、特征支持率和每个类别的序列模式率四种信息,能够更全面地考虑序列的特征,从而更准确地对序列类别进行分类。即使数据存在偏差,也能通过分数计算避免错误判断。
-
可扩展性
:集成了序列模式挖掘和分类架构,具有良好的扩展性。可以方便地结合新的序列模式挖掘算法或优化分类策略,以适应不同的数据和应用场景。
3.2 PCRSCM模型的应用场景
PCRSCM模型在多个领域具有广泛的应用前景:
-
金融领域
:可以用于分析客户的消费记录、交易序列等,预测客户的信用风险、债务评估等。例如,通过分析客户的消费序列模式,判断客户是否存在潜在的违约风险。
-
医疗领域
:对患者的病历记录、症状出现序列等进行分类,辅助医生进行疾病诊断和治疗方案的制定。比如,根据患者的症状出现顺序和频率,预测患者可能患有的疾病类型。
-
电子商务领域
:分析用户的浏览记录、购买序列等,进行商品推荐和用户行为预测。例如,根据用户的购买序列模式,向用户推荐可能感兴趣的商品。
3.3 与其他序列分类模型的比较
为了更直观地展示PCRSCM模型的优势,将其与其他常见的序列分类模型进行比较:
|模型名称|特点|优势|劣势|与PCRSCM对比|
| ---- | ---- | ---- | ---- | ---- |
|Exarchos模型|分两阶段,存储序列分数并与模式比较,第二阶段使用优化软件调整权重|通过优化权重提高准确性|需要优化软件,计算复杂度高|PCRSCM无需优化阶段,计算更高效|
|Li模型|基于Exarchos模型,未包含优化|无需优化也能达到较高准确性|未考虑模式覆盖率等因素|PCRSCM结合模式覆盖率,预测更准确|
4. 未来研究方向展望
4.1 算法优化
虽然PCRSCM模型已经表现出了良好的性能,但仍有进一步优化的空间。可以探索更高效的序列模式挖掘算法,以减少模式挖掘的时间复杂度。同时,对模式覆盖率计算和类分数计算方法进行优化,提高计算效率和准确性。
4.2 多模态数据融合
在实际应用中,序列数据往往不是孤立存在的,可能还伴随着其他类型的数据,如图像、文本等。未来可以研究如何将PCRSCM模型与多模态数据融合,以更全面地分析数据,提高分类的准确性和实用性。
4.3 实时序列分类
随着信息技术的发展,很多应用场景需要对实时产生的序列数据进行分类,如实时监控、在线交易等。未来可以研究如何改进PCRSCM模型,使其能够适应实时序列分类的需求,提高模型的实时性和响应速度。
4.4 跨领域应用拓展
目前PCRSCM模型的应用主要集中在几个特定领域,未来可以尝试将其拓展到更多的领域,如交通、教育、能源等。通过在不同领域的应用,进一步验证模型的有效性和通用性,并根据不同领域的特点对模型进行优化和改进。
5. 总结
本文主要介绍了三方PAKE协议中哈希函数的使用以及基于模式覆盖率的序列分类模型(PCRSCM)。在三方PAKE协议方面,AP - 3PAKE协议在哈希函数实例化不当的情况下容易受到离线字典攻击,通过改进协议使用分组密码和重新定义哈希函数,有效提高了协议的安全性。在序列分类模型方面,PCRSCM模型结合了序列模式挖掘和分类技术,具有高效性、准确性和可扩展性等优势,在多个领域具有广泛的应用前景。未来,PCRSCM模型还有很大的研究和发展空间,可以通过算法优化、多模态数据融合、实时序列分类和跨领域应用拓展等方面进一步提升其性能和应用范围。
超级会员免费看

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



