IPv6网络入侵检测与椭圆曲线密码学FPGA实现
1. IPv6网络入侵检测
在IPv4网络的入侵检测系统(IDS)实验中,KDD Cup 1999入侵检测竞赛数据常被使用,原始数据经处理得到24种攻击类型,主要分为探测、拒绝服务、用户到根攻击和远程到用户攻击四大类。而在IPv6环境下,我们聚焦于典型的DoS/DDoS攻击以及滥用路由器头攻击,包括与IPv6邻居发现协议相关的DoS攻击,以及基于TCP - Flood、UDP - Flood、ICMP - Flood和smurf这四种代表性攻击模式的DDoS攻击。
我们在IPv6环境下进行攻击实验并捕获攻击数据包,通过winpcap(或Linpcap)捕获数据包。将攻击(或正常访问)识别为在短时间内对目标主机不同端口的一系列连接尝试。由于审计数据量巨大,我们没有将所有连接记录聚合到一个训练数据集中,而是将基于相同目的地的一系列连接合并为一个事务。
每个记录通常包含描述事件特征的大量特征,如连接持续时间、源主机与目标主机之间传输的字节数等。我们将记录正式定义为七元组{IP, Port, Flag, Protocol, Service, State, Class},从数据集中提取6种不同特征和一个类标签,分为2个基本特征(请求的服务、源和目标机器之间使用的协议)、2个内容特征(标志和TCP连接状态)和2个基于主机的特征(主机IP地址和IP端口)。
数据集分为训练集和测试集,各包含5000条记录。训练集用于构建模型以实现最大泛化精度,测试集用于在测试阶段检测入侵。
1.1 数据挖掘算法实现
-
基本算法
:关联规则挖掘问题可分两步解决:一是从事务数据库D中挖掘出所有频繁项集;二是从频繁项集中计算所需的频繁关联规则。第一步是挖掘过程中最困难的部分,发现所有频繁项集后,计算相对关联规则就容易了。Apriori算法是解决第一步最有效的算法之一,其生成所有频繁项集的步骤如下:
- 扫描数据库D找出L1。
- 当K > 1时,通过合并Lk - 1中的项集生成Ck,删除Ck中存在不在Lk - 1中的(k - 1) - 子集的项集。
- 通过扫描数据库计算Ck中项集的支持度以确定Lk。
- 重复步骤2直到Lk = Φ。
- 改进算法 :在关联规则算法中,将必要属性称为轴属性。在实际中,并非所有属性都需指定为轴属性,如源主机IP地址和源主机端口通常不作为轴属性。我们正式定义七个必要属性{DIP, DPort, Flag, Protocol, Service, State, Class}为轴属性,在候选生成过程中,项集必须包含轴属性的值。改进后的算法如Algorithm 1所示:
Algorithm 1:
Apriori begin
1) 1L = find_frequent_l - itemset(D)
2) For(k = 2;1kL − ≥ ≠ ∅;k++)
3) kL = apriori_gen(1kL −,min - sup)
4) Return L = kkU L ;
Procedure apriori_gen(1kL −,min - sup)
For each iternset 11kLL −∈
For each itemset 21kLL −∈
If(1L [l] = 2L [1]) ∧(1L [2] = 2L [2]) ∧… ∧(1L [k - 2] = 2L [k - 2]) ∧(1L [k - l] < 2L [k - l])
Then{c = 1L >< 2L ;
If has - infrequent - subset(e, 1kL −) then
Delete c;
Else{
For each ransaetion t∈D{
If(count(t) < k) then
Delete t;
Else
{Ct = subset(kC ,t);
For each candidate c∈Ct
c.count++; }
kL = {c∈kC |support(c) >= min - sup}
}
}
}
Retum kL ;
Procedure has - infrequent - subset(c;1kL −)
For each(k - l) - subset s of c
If s∈1kL − then
Return TRUE;
Return FALSE
我们的目标是检测数据集中的关联规则,认为“相关”的关联规则应描述与轴属性“Class”相关的模式,仅包含其他属性的模式通常“不相关”。
1.2 实验结果
- 实验设计 :在北京工业大学计算机科学学院建立了一个小型IPv6网络,由四台基于Intel Celeron和Intel P4 CPU的台式PC组成,所有计算机配置为双启动(MS Windows XP和Mandrake Linux 10)和双栈设备(支持IPv4和IPv6协议)。进行了不同类型的DoS攻击实验,通过连续24小时监控网络流数据,获取入侵行为和正常连接数据。
-
数据集和规则
:选择入侵数据进行模式挖掘和特征构建,为每个连接记录标记“正常”或“异常”以创建训练数据。部分关联规则如下表所示:
| No | Rule |
| — | — |
| 1 | 208, passitive, udp Æ abnormal, 0.256, 1.0 |
| 2 | Passitive, tcp, SF Æ normal, 0.215, 1.0 |
| 3 | Passitive, tcp, S1 Æ abnormal, 0.12, 1.0 |
| 4 | Tcp, ftp, SF Æ normal, 0.122, 1.0 |
| 5 | 3eff:124e:000:0003, passitive Æ abnormal, 0.1, 1.0 |
| 6 | Passitive, icmpv6 Æ abnormal, 0.24, 1.0 |
| 7 | Passitive Æ abnormal, 0.706, 0.7 |
| 8 | 3eff:124e:0000:0001, 80, passive, tcp, http, sf Æ normal, 0.95, 1 | -
测试结果
:使用测试数据集进行测试,为找出检测准确率与相同最小支持度下属性的关系,对不同属性的数据进行实验,分类结果如下表所示:
| Support | 0.1 | 0.2 | 0.3 - 0.7 | > 0.7 |
| — | — | — | — | — |
| True | 361 | 236 | 353 | 0 |
| False | 139 | 264 | 147 | 500 |
| Accuracy | 72.2% | 47.2% | 70.6% | 0% | - 算法改进 :时间消耗是评估算法的关键因素,对比基本Apriori算法和改进算法的时间消耗,结果表明改进算法更优。
2. FPGA实现椭圆曲线点乘法
在互联网时代,信息安全至关重要,密码学是保障数据安全传输的主要方法。密码学系统分为对称密码系统和非对称密码系统,前者依赖用于加密和解密操作的秘密密钥,后者依赖公钥和私钥。
椭圆曲线密码学(ECC)因其速度快、功耗低,在与RSA等经典密码系统相比时更受青睐,它能以更短的密钥大小提供与RSA相同的安全级别,广泛应用于数字签名、认证协议等领域。
2.1 数学背景
-
伽罗瓦域算术
:伽罗瓦域或有限域定义为GF(pᵐ),是具有有限个元素的域。伽罗瓦域算术在椭圆曲线密码学实现中起着关键作用,是ECC标量乘法运算的核心。适合ECC实现的伽罗瓦域分为素域(m = 1)和二进制域(p = 2且m > 1),二进制域适合硬件实现,因为其域元素可轻松实现为硬件中的位向量(多项式基表示)且无进位传播特性。在二进制有限域上的算术是椭圆曲线密码学标量乘法实现的核心,蒙哥马利算法应用于Weierstrass椭圆曲线依赖于四个主要操作:域乘法、域加法、域平方和域求逆。
-
加法运算
:可通过一个n位XOR操作(等同于按位模2加法)完成,两个元素A, B ∈ GF(2ᵐ)的和由以下公式给出:
[C(x) = A(x) \oplus B(x) = \sum_{i = 0}^{m - 1}(a_i \oplus b_i)x^i] -
平方运算
:元素平方的二进制表示是在二进制表示的连续位之间插入一个0位,A ∈ GF(2ᵐ)的平方由以下公式给出:
[A^2(x) = \sum_{i = 0}^{m - 1}a_ix^{2i}] -
乘法运算
:假设两个元素A(x), B(x)属于二进制域GF(2ᵐ)和不可约多项式P(x),域乘法分两步进行:
- 多项式乘法:C’(x) = A(x) · B(x)
- 使用不可约多项式P(x)进行约简:C(x) = C’(x) mod P(x)
- 约简运算 :乘法和平方运算需要将结果值的阶从大于m约简到小于或等于m。
- 求逆运算 :在使用蒙哥马利方法计算椭圆曲线密码学中的标量乘法时,求逆是最耗时的过程。在二进制有限域中,求逆是为非零元素a ∈ GF(2ᵐ)找到a⁻¹,使得(A · A⁻¹) = 1 mod f(x)。有多种算法可用于计算求逆,如标准除法算法、扩展欧几里得算法(EEA)、改进的几乎求逆算法(MAIA)、二进制求逆算法和Itoh - Tsujii乘法求逆算法。
-
加法运算
:可通过一个n位XOR操作(等同于按位模2加法)完成,两个元素A, B ∈ GF(2ᵐ)的和由以下公式给出:
通过上述对IPv6网络入侵检测和FPGA实现椭圆曲线点乘法的研究,我们可以看到在不同领域中,数据挖掘和硬件加速技术都发挥着重要作用,为网络安全和密码学应用提供了有效的解决方案。
IPv6网络入侵检测与椭圆曲线密码学FPGA实现
2.2 架构与设计
为了在FPGA硬件技术上实现椭圆曲线密码学,需要设计合适的架构来完成伽罗瓦域算术和ECC操作。以下是具体的架构和设计思路:
- 伽罗瓦域算术架构 :由于二进制域适合硬件实现,在设计时要充分利用其无进位传播的特性。对于加法运算,可直接使用XOR门实现;平方运算可通过插入0位的电路实现;乘法运算则需要结合多项式乘法和模约简操作。例如,可采用Karatsuba - Ofman乘法器的改进版本来提高乘法运算的效率。
- ECC操作架构 :使用蒙哥马利算法在射影坐标下实现ECC操作。该算法依赖于伽罗瓦域的四个主要操作,通过合理设计电路结构,将这些操作集成到一个统一的架构中,以实现高效的椭圆曲线标量乘法运算。
下面是一个简单的mermaid流程图,展示了ECC标量乘法的主要流程:
graph TD;
A[输入标量和椭圆曲线点] --> B[初始化];
B --> C[进行伽罗瓦域运算];
C --> D[执行蒙哥马利算法];
D --> E[输出结果];
2.3 结果与比较
在Xilinx Virtex - II XC2V6000 FPGA设备和Xilinx VirtexE 2600上对提出的架构进行了测试,结果表明该架构能够在72.939 μs(Xilinx Virtex - II XC2V6000)和100.68 μs(Xilinx VirtexE 2600)内完成GF(2¹⁹¹)椭圆曲线标量乘法运算。与其他实现方法相比,该架构具有明显的速度优势。
以下是不同FPGA设备上的运算时间对比表格:
| FPGA设备 | 运算时间(μs) |
| — | — |
| Xilinx Virtex - II XC2V6000 | 72.939 |
| Xilinx VirtexE 2600 | 100.68 |
此外,该架构还具有良好的可扩展性,只需进行少量修改即可适用于任意伽罗瓦域大小,为不同的应用场景提供了灵活性。
3. 总结与展望
本文分别对IPv6网络入侵检测和FPGA实现椭圆曲线点乘法进行了研究。在IPv6网络入侵检测方面,首次将关联规则数据挖掘算法应用于IPv6模拟数据集,改进了基本的Apriori算法,使其适用于IPv6网络,提高了入侵检测的效率和准确性。在FPGA实现椭圆曲线点乘法方面,提出了对Karatsuba - Ofman算法的改进,并设计了基于蒙哥马利算法的架构,实现了高效的椭圆曲线标量乘法运算。
未来的研究方向可以包括:
- 在IPv6网络入侵检测领域,进一步优化关联规则挖掘算法,提高对新型攻击的检测能力;结合机器学习和深度学习技术,构建更智能的入侵检测模型。
- 在FPGA实现椭圆曲线点乘法领域,继续探索更高效的硬件架构和算法,降低功耗和资源占用;将该技术应用于更多的实际场景,如物联网安全、云计算安全等。
通过不断的研究和创新,我们有望在网络安全和密码学领域取得更大的突破,为信息时代的安全保驾护航。
超级会员免费看
2276

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



