2024年2月10日发(作者:)

82 福 建 电脑 2011年第3期 基于P2P计算的DES密钥空间破解 吴泽勋 (福建广播电视大学龙岩分校福建龙岩364000) 【摘 要】:DES算法是国家商用保密通信和计算机通信的常用算法,但可以通过穷举密钥的方式破 译。通过构建一个专用DES破解的P2P平台,把网络中闲置计算机的处理能力集中起来,使用穷举密钥的 方式解密使用DES加密的字符串。 【关键词】:P2P(点对点),DEs(数据加密标准),解密 DES(Data Encryjption Standard)密码算法1977年 分在一起经过一个置换(初始置换的逆置换),这样算 正式生效作为美国联邦信息处理标准.是国家商用保 法就完成了。DES算法是~个公开的标准算法.具体 密通信和计算机通信的常用算法,使用广泛.具有较高 这里就不再详细介绍.下面介绍P2P网络的架构。 的安全性。它是现代密码学中重要的一次突破.它的出 二、P2P网络的架构 现对推动密码理论的研究起了重大的作用 DES采用 本P2P网络由几个P2P服务器、几个”转通道”服 56位密钥长度,其密钥量为2 个,这样的量对于现代 务器、一个数据库服务器和成千上万个客户端构成。 计算机来讲不是非常足够.现在的”超级计算机”有非 P2,P服务器主要功能为侦听客户端的链接请求并合理 常强大的数据处理和计算能力.有可能完成密钥空间 分配客户端的密钥空间:数据库服务器主要功能为存 的穷举。当然“超级计算机”造价极高.通常只有一些国 储客户端信息和密钥空间的分配信息 客户端必须联 家级的部门,如航天、气象等部门才有能力配置这样的 接到某个P2P服务器才能得到网络服务.P2P服务器 设备 随着互联网而迅速发展起来的.出现了一种P2P 在客户端连接时必须保持开启状态。由P2P服务器来 计算模式 这种计算模式是利用互联网把分散在不同 侦听是否有客户端连接。P2P系统基本连接示意图如 地理位置的电脑组织成一个虚拟的”超级计算机”.这 下图所示(实线代表连接,虚线代表信息传输): 样能提高数据处理能力又能充分利用网上的闲置处理 数摄库艇务器 “转通道”服务器群 能力。而使用P2P计算破解DES密钥空问的突破点就 是在于把密钥空间分割成若干”小片”.客户端根据自 己的处理能力申请一个或多个密钥空间片进行密钥搜 索,并把结果返回总的服务器端汇总整理 下面先了解 下DES加密/解密算法.然后讨论怎么构建一个专用 的P2P网络来实现DES密钥的破解.最后讨论一下具 体设计与实现: DES加密/解密算法简介 一一、DES采用的是一种分组加密算法.它以64位为分 组对数据加密。64位一组的明文从算法的一端输入. 64位的密文从另一端输出。DES是一个对称算法:加 密和解密用的是同一个算法(除密钥编排不同以外)。 密钥的长度为56位f密钥通常表示为64位的数.但每 整个P2P系统运行的事件时序是:当有客户端连 个第8位都用作奇偶检验,可以忽略1。密钥可以是任 接到P2P服务器成功后.首先服务器先通过发送一个 意的56位数,且可以在任意的时候改变。 连接请求给客户端测试客户端是否能够被外部连通来 DES算法把64位的明文输入块变为64位的密文 分配客户端ID.再者判断是否直接分配密钥空间,如 输出块.它所使用的密钥也是64位.DES对64位的明 果是则直接按客户端的评估值分配.否则指示该客户 文分组进行操作。首先通过一个初始置换.将明文分组 端连接到最困难的客户端去分配密钥空间。在此过程 分成左半部分和右半部分,各32位长。然后进行16 中P2P服务器把客户端的数据存放到数据服务器中的 轮相同的运算,这些相同的运算被称为函数f.在运算 数据库中 如果最困难的客户端拥有高ID.则新连接 过程中数据和密钥相结合。经过16轮运算后左、右部 的客户端直接连接到最困难的客户端.并向最困难客 

2011年第3期 福建 电脑 83 户端提出密钥空间分配的申请。如果最困难的客户端 空间没有分配完.如果还有则根据客户端的评估值发 是低ID的话.先判断新连接的客户端是否有高ID,如 送密钥空间给客户端.如果没有则发送最困难的客户 果有则通知最困难客户端反向连接到连接客户端,然 端信息给新连接的客户端。等待回收密钥空间。等待回 后由新连接的客户端提出密钥分配申请。如果新连接 收解密的密钥和破解的明文 的客户端也是低ID.则两个客户端都到”转通道”服务 2、客户端连接服务器 器申请开通”转通道”.新连接的客户端通过”转通道” 客户端启动后,如果连接服务器成功,则客户端A 向最困难客户端提出密钥空间分配申请 最困难客户 发送客户端信息给服务器S.服务器S新建一个连接 端接到密钥空间的分配申请后根据两个客户端的评估 连接到客户端A的8998端口.如果连接成功则发送 值.把未搜索完的密钥空间按照比例分配给新连接的 高ID给客户端A.否则发送一个低ID给客户端A.客 客户端。新连接的客户端收到密钥空间开始解密搜索, 户端A接到ID号后.向服务器S提出密钥空问申请 每搜索完一个密钥空间片.则向P2P服务器发送完成 要求.服务器S判断如果密钥空间没有分配完.则直接 的密钥空间片.P2P服务器把它保存到数据库服务器。 分配密钥空间。(在此规定传输的密钥空间最大为6个 如果搜索到密钥则回传个服务器.并通知所有的客户 字节。最小为2个字节:根据此规定可以推断出至少 端已经找到 256个客户端连接才可能搜索完全部密钥空间.而且 新连接Ij勺吝,‘ 埔P2P溅务器 最前连接的256个客户端可能直接由服务器分配密钥 教 器 空间。)如果密钥空间分配完毕则传送当前最困难的客 户端B信息给申请的客户端A。困难值的算法为未搜 索的密钥空间大小除以该客户端的评估值 当客户端不能接受外部的连接时引入一种转通道 机制。通过申请开通转通道.通过转通道服务器连接来 作为中转站保持两个客户端之间的通讯 如果客户端连接服务器失败.则客户端搜索本地 局域网中是否有其他客户端启动 如果有则连接到此 客户端,连接成功.发送申请分配密钥空间信息。收到 此客户端的密钥空间后.开始进行破解运算。搜索密钥 空间。搜索完的密钥空间直接发送给此客户端.由它转 发给服务器 3、客户端和客户端的连接 如果服务器中的密钥空间分配完毕.客户端必须 到另一个客户端申请密钥空间.在此设置中等同于可 能第256个后登录服务器的客户端必须到其他客户端 申请密钥空间。设客户端A向服务器提出密钥空间申 请后,得到的是最困难的客户端B信息。则客户端A 必须连接到客户端B,分担B的密钥空间。服务器回传 的客户端B的信息包含客户端B的ID、IP地址等信 息。 所有的申请都不成功则搜索本地局域网中是否有 下面讨论P2P网络中的各个实现: 其他客户端有没有搜索完的密钥空间。如果有则连接 1、P2P服务器的设立 到此客户端。连接成功。发送申请分配密钥空间信息。 在P2P服务器启动之前必须建立好数据库.并启 收到此客户端的密钥空间后,开始进行破解运算.搜索 动数据服务器。P2P服务器启动后处于侦听客户端连 密钥空间,搜索完的密钥空间直接发送给此客户端.由 接的状态。这种状态一直保持。当有客户端提出连接申 它转发给服务器。直接连接成功后.申请客户端A发 请时。在连接集合中新开一个连接。用来连接客户端。 送自己的评估值给客户端B.客户端B根据两者的评 接收连接后.P2P服务器对新连接的客户端提出连接 估值分配密钥空间。分配完成后.两者通讯可以暂时断 申请.如果成功则发送高ID给客户端,请求的连接断 开。然后两者自行各自搜索剩余的密钥空间.如果计算 开。不成功则发送低ID给客户端 在上面的操作完成 的密钥空间上传服务器出现网络不通的情况.客户端 后,P2P服务器等待客户端提出密钥空间分配申请。接 将试图连接已经连接过的客户端.并把搜索完成的密 到客户端的申请.P2P服务器到数据搜寻是否有密钥 钥空问上传至该客户端.由该客户端一并上传到服务 

福器。 . 建电脑 2011年第3期 OLE DB的一个中间层 1、数据存储设计 4、密钥空间的回传 客户端每搜索完一个传输最小空间(两个字节大 本系统设计专门的SQL Server服务器.安装SQL 小),则把搜索的空间回传给服务器。如果连接服务器 Sen,er 2000来存储各个服务器所要记录的信息.该数 失败并不停止搜索.继续搜索直到空间搜索完或搜索 据服务器只提供给各个服务器访问.客户端不直接访 到密钥或客户端被丢弃 问数据服务器 数据服务器存储P2P服务器和”转通 5、找到密钥。搜索完成 道”服务器所需要记录的各种信息 表Clientlnfo纪录 如果某个客户端找到密钥。则发送给服务器。服务 客户端相关的信息.用来记录客户端的相关信息。该表 器通知每个客户端。接到通知的客户端停止搜索。在这 主要提供给P2P服务器访问.记录的是服务器管理客 个过程可能会出现延时的情况 户端的相关信息 表NoKey用来记录客户端已经搜索 6、客户端的遗弃 过不是密钥的密钥空间。该表也是提供给P2P服务器 当客户端困难度达到某个特定值时.该客户端剩 访问.记录客户端发送到服务器的搜索过的空间。在客 余的空间被回收.也就是该客户端计算将被舍去.不再 户端.为了减少客户端的软件要求,减小客户端的块 使用。 头。使客户端成为一个绿色软件,所以不再使用数据库 7、P2P网络传输协议编码 来存储相关的信息 而在客户端运行时会自动创建以 该传输协议是属于应用层的协议.基于TCP协议 下几个文件用来存储客户端的相关信息 一是config. 之上 编码采用二进制的信息编码来记录或传输所有 ini文件。这是个文本文件。用来存放客户端IP、用户信 的信息.该编码由信息头和主体构成.信息头由固定长 息、用户联系方式、用户联系信息、上次登陆时间、最后 度的8个字节组成,有下列结构: 次登陆时问等。第二个文件是config.dat文件。这是 ①留用:2个字节.留作服务扩展使用,主要怕还 个二进制文件.用来存放客户端得到的起止密钥空间。 有没有想到的地方.留2个字节以防万一。 第三个文件是FinishedKey.dat文件.这是个二进制文 ②大小:4个字节大小;表示后面主体信息的长 件.用来存放已经搜索过不是密钥的密钥空间。第四个 一度.不包含信息头的字节数。注:万一信息不包含主体 文件是SendKey.dat文件.这也是个二进制文件。用来 存放已经搜索完并且已经发送给服务器的密钥空间。 则该值为0 ③信息ID:2个单个字节类型一唯一表示信息标 2、程序代码的总体结构 示,前一个字节作为方向。客户端到服务器的为&H01 本系统的程序分为三个工程.第一是P2PClient工 开头:服务器到客户端的为&H02开头;客户端到客户 程,实现客户端应用程序,第二是P2PServer工程,实现 端的为&H03开头等 服务器端应用程序.第三是ExchangeChunnel工程,实 其基本编码格式如下: 现”转通道”功能。三个工程独立设计.但都使用到网络 传输模块。下面现把各工程的模块构成简单介绍一下。 P2PClient工程是实现客户端的工程文件.主要由 三大模块构成.一是网络传输模块.负责连接到服务 器、连接到其他客户端并发送或接收协议中预定的信 以上就是整个P2P网络的构建和实现.下面讨论 息.这是和服务器或其他客户端的接口。由它构建一个 具体设计与实现了 三、设计与实现 P2P网络的基础:二是P2P协议解释模块。此模块每当 接收或发送完信息必须根据发送情况或接收信息进行 本系统的程序实现是用Visual Basic 6.0。本系统的 处理,并进行下一步的操作:三是DES解密模块,把接 通讯实现是用Windows Socket。本系统没有使用 收到的密文.使用密钥空间的密钥按顺序依次解密直 WinSocket控件.而是直接调用ws2 32 .dn中的函数实到找到正确密钥或密钥空间搜索完成。当然不是所有 现.这样可以避免因没有装WinSocket控件造成程序 的信息都要到DES解密模块.不是解密空间的信息直 _不能运行的情况.还有可以避免很多使用控件的限制, 接在协议解释时就直接处理了.需要发送信息的也就 相对比较灵活 本系统在服务器端的数据存储采用 直接发送了。 Microsoft SQL Server 2000.它是一个Windows服务器 P2PServer是实现服务器端的工程.主要也是由三 上使用的、支持客户端/服务器结构的数据库管理系 大模块构成,一是也是网络传输模块,负责通信,此模 统.是一个关系数据库管理系统。程序访问数据服务器 块与客户端的网络传输模块重用.可以通用一样的类 SOL SeI弋,er 2000使用的是ADO组件.微软公司的A— 代码:二是P2P协议解释模块.此模块虽然解释的还是 DO rActiveX Data Objects1是一个用于存取数据源的 同一个协议.但是处理方法不一样.所以不能共用一个 COM组件 它提供了编程语言和统一数据访问方式 类代码;三是密钥空间汇总模块.记录(下转第90页) 

福建 电脑 2011年第3期 习、在线考试四部分。 示出学生可以参加哪些考试,如考试过期则不能参加. 顺序练习是每类题型一个页面,按顺序练习,每题 学生参加的考试只能进行一次.再次进入显示的是考 做完,如果是客观题,系统直接判断并给出答案。如是 试结果。 主观题,则给出参考答案。 选题练习页面如图3: 证琏样 嗣 皇矗目 搬葛 ≮ ^ f{g g : 4、题库管理系统的安全 一般连接题库管理系统数据库的时候.大多采用 Web.config文件中的连接字符串(ConnectionString),一 般用户虽然不可以通过浏览器看到Web.COnfig文件的 ・tmm” 一 F —— ——_0{ t翱。广———一 : ; - . H ■■_ 一 内容,但主机用户仍可能看到该文件中的重要设置.所 以我们可以使用ASP.NET IIS注册工具(Aspnet regii s..i £ 蔫1:l『———一 一 —_圃 exe)非常简单的加密和解密Web.config配置文件的区 段来达到加密效果。加密代码如下: Aspnetregiis—pe”connectionStrings” _一≮》毫 | 印p”/virtual-path” prov”RsaProtectedConfigigurationProvider” -图3选题页面 5、小结 本文是对基于ASP.NET技术的题库管理系统的具 图中左半部分用图表控件(柱状图)显示题库中题 体结构功能的介绍.软件采用开放、动态的系统架构, 目的分布.每类题型题目的数量也有显示.在生成试卷 将传统考试、练习模拟与网络应用结合在一起。系统设 页面输入的题目数量注意不能超出题库中题目的总 计的操作简单、安全稳定、便于维护。学生可以自主学 数,否则系统会有出错提示,当不需要某一类型的题目 习。教师可以根据需要构建题库。组织考试等.提高了 时。输入数字”0”。如果空白不输,否则将不能提交页 学校的考试水平和教学管理水平。 面。学生完成答题后,点击页面下方的”完成选题测试” 按钮.提交答案。客观题,系统自动判对错,主观题系统 参考文献: 给出参看答案.学生测试结果系统不保存 【1】洪洲.题库管理系统的研究现状与发展探讨Ⅱ】.通信技术.2009. 模拟练习模块与选题练习不一样.模拟自测模块 [2]MIS2000 Lab.周栋祥博士吴进鲁.ASP.NET案例精编『M1.北 只有客观题.用户完成后系统显示测试结果和得分,实 京.清华大学出版社.2009. 现方法类同选题练习模块 『31杨琨鹏孟凡琦温才姣.ASP.NET+SQL Server动态网站开发 在线考试就是让学生参加可以老师布置的考试任 从基础到实践IM1.北京.电子工业出版社.2005. 务。考试有发布时间和有效时间,当学生登录后,能显 (上接第84页) 搜索完成的密钥空间的详细信息 这里也是由很多的 模式。人人贡献出自己的资源、人人享受他人提供的资 信息处理是不需要经过汇总模块.而是直接在协议层 源。P2P必然会长期存在并且在各个领域得到更加广 处理掉的 泛的应用。 ExchangeChunnel是实现”转通道”的工程.主要由 两大模块构成。一是也是网络传输模块,负责通信,与 参考文献: 1】林柏钢.网络与信息安全教程北京:机械工业出版社,2004. 前两个的网络传输模块重用,可以通用一样的类代码; [ 二是信息转发模块.负责把一个客户端信息传给另一 77-88.客户端 [2]李少芳.DES算法加密过程的探讨.计算机与现代化,2006, 8:102-105. 程序的整体设计就如以上介绍的。由于篇幅所限, 【3】唐辉张国杰黄建华李祖鹏.一种混合P2P网络模型研究与 详细代码不再讨论 设计.计算机应用,2005,3:522-526. 82. 四、小结 【4】杨发毅.P2P网络现状及发展.网络通讯与安全,2007,1:80— DES加密/解密方法是一个较安全且运算较快的加 密/解密算法.可以通过穷举密钥的方式破解.本文讨 [5】许斌JxTA_Java P2P网络编程技术.北京:清华大学出版社,  论了DES算法和P2P系统的构建.并设计出专门用于 2003.6】Yoram Kulbak and Danny Bickson.The eMule Protocol Speci- DES破解的P2P系统.没有通用性。但对于理解和设计 [ication.DANSS Lab,2005. 其他应用的P2P系统由积极的研究意义。相信随着PC f【7】王艳辉.基于P2P网络搜索技术研究.合作经济与科技,2007, 技术和Intemet的发展.个人电脑的能力越来越强。接 入的带宽越来越快.P2P将成为未来社会的一种计算 4:93-94.