(系统工程专业论文)一个安全电子投票系统的研究与设计.pdf_第1页
(系统工程专业论文)一个安全电子投票系统的研究与设计.pdf_第2页
(系统工程专业论文)一个安全电子投票系统的研究与设计.pdf_第3页
(系统工程专业论文)一个安全电子投票系统的研究与设计.pdf_第4页
(系统工程专业论文)一个安全电子投票系统的研究与设计.pdf_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

i 摘摘 要要 投票,是民主社会中经常发生的行为,而传统的手工投票由于存在种种弊端, 已不适应当前的投票需求。随着网络技术和密码学技术的发展,电子投票产生了, 它是以密码学为基础,运用计算机和网络技术来实现投票功能,具有很高的效率 和灵活性,可应用于诸多领域,有广阔的应用前景。 要使电子投票能够安全可靠地运行,首先必须在密码学技术的基础之上设计 出一个安全的电子投票协议。自从 1981 年 chaum 设计了第一个电子投票协议以 来,已有多位学者设计了满足不同要求的电子投票协议,但这些协议都还或多或 少的存在着缺陷,无法在实际中应用。 为了实现一个安全实用的电子投票系统,本文首先对 fujioka, okamoto 和 ohta 三人于 1992 年设计的一个电子投票协议 foo 协议进行了研究,详细 分析了 foo 协议的安全性,深入探讨了该协议存在的漏洞和弊端,以及产生这 些缺陷的原因。在此基础上,借鉴现实生活中投票方式的某些优点,提出了改进 的策略和方法,从而设计出一个新的电子投票协议。新协议在 foo 协议的基础 上将投票中心进行了进一步的分解,同时增加了一个监督机构,目的在于使得其 投票机制更接近于现实生活中的投票,让投票人的投票行为更加灵活和方便,提 高整个投票流程的效率,并且通过投票中心不同机构间的相互牵制,来制约投票 中心的舞弊行为。所设计的新协议对解决 foo 协议存在的某些问题进行了有益 的探索,并预期其可以在一定的网络环境中实现有效的电子投票。以新的协议为 核心,本文设计了一个安全电子投票系统,详细介绍了该系统的体系结构和模块 功能,并且在 windows 平台上使用 visual c+6.0 实现了其中的关键环节。 最后,本文对研究工作进行了总结并对今后的发展和需要的进一步研究工作 进行了探讨。 关键词:关键词: 电子投票, foo 协议, 盲签名, rsa ii abstract voting is a behavior that often takes place in democratic society. the traditional craft voting cant meet the present voting demand because of its weakness. with the development of network and cryptography technologies, the electronic voting arises at the historic moment. based on cryptography, electronic voting uses computer and network technology to realize the functions of voting. electronic voting has the advantage of high efficiency, convenience and flexibility, can be applied to many field. it has broad outlook of application. in order to make the electronic voting be carried out securely and reliably, a secure electronic voting protocol must be designed. chaum designed the first electronic voting protocol in 1981. since then many scholars have designed different protocols that are adapted to different situation. however, these protocols have some defaults. they are not applied very well. in order to realize the electronic voting system applied in actual life, this paper has studied foo protocol which is designed in 1992 by fujioka, okamoto and ohta , carried detailed analysis on foo and found several shortages in foo, then referring to the advantage of traditional voting, presented several strategies and methods to improve the protocol. based on these facts, a new protocol is designed by this paper. the new protocol reduces the power of voting centre and imports a new sub-center called supervisor in order to make the mechanism of new protocol more close to that of actual life, improve the efficiency of voting greatly, and make voting more flexible and convenient. the new protocol also reduced the possibility of that the centers practice fraud of voting. this new protocol explores the methods to solve foos problems, is expected to be suitable for elections. based on this new protocol, this paper designs a secure electronic voting system, introduces the systematic structures and modules function of the system, and realizes the key parts of the system using visual c+ 6.0 in windows platform. in the end, the research work in this paper is summarized and the development and further work for the secure electronic voting system is discussed. key words:electronic voting,foo protocol,blind signature,rsa 独创性声明 本人声明所呈交的学位论文是我个人在导师的指导下进行的研究工 作及取得的研究成果。据我所知,除文中已标明引用的内容外,本论文 不包含任何其它人或集体已经发表或撰写过的研究成果。对本文的研究 做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到 本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即: 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允 许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部 或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复 制手段保存和汇编本学位论文。 保密,在_年解密后适用本授权书。 本论文属于 不保密。 (请在以上方框内打“” ) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 1 1 引言引言 1.1 研究背景研究背景 投票行为,是现代民主社会中一个经常发生的行为,不仅有传统的选举投票, 如各国的领导人选举;还有其他的评审投票,如各类奖项评审等。然而,传统的 投票方式已经显得越来越不能适应现代社会的需要,因为它不仅消耗了大量的人 力物力,而且由于整个投票过程从发送选票到统计公布结果都是由人直接进行操 作,存在着严重的安全隐患,其中任何环节如果出现问题都可能影响整个投票结 果。于是,电子投票系统便应运而生。 电子投票的发展从它在 1884 年第一次被提出到现在的一百多年间并不是一帆 风顺的,其主要原因是电子投票的安全性和公平性很难得到保证。直到上个世纪 中叶,密码学突破军事应用的限制在各领域得到广泛的应用,以及密码学本身的 飞速发展,电子投票的研究才有了可喜的进展,特别是公钥加密技术的出现,近 一步促进了人们对电子投票的研究1。 电子投票用数字化的选票代替了纸质选票,它利用各种网络技术和密码学技 术,使投票人通过计算机网络就可以进行投票,选票的统计工作也由计算机负责 完成,从而节省了大量的人力物力,而且保证了投票的公正、公平、公开。正是 这些优点使得电子投票取代传统的投票方式成为必然趋势。 1.2 电子投票的历史与现状电子投票的历史与现状 电子投票在效率、方便性、灵活性上都有传统的人工投票方式所无法比拟的 优势,因此人们很早就对电子投票系统进行了积极的探索。 最早在 1884 年,美国发明家 tomas edison 就发明了一种电子投票装置,他 想在 massachusetts 州的立法机关中进行电子投票,但没有成功。随着计算机技术 的发展,人们逐步将计算机引入到电子投票的研究和实践中。1958 年,哥伦比亚 广播公司选举总部开始利用计算机对选举结果进行预测。在 1992 年美国民主党的 全国代表大会上,代表们通过触摸屏进行了投票。到 2001 年为止,巴西已经在全 2 国范围内实现了使用触摸屏投票装置进行民主选举。但这些电子投票的实践大都 只停留在利用计算机或电子设备进行日常的投票管理,人们仍然需要到投票站进 行投票2。 为了实现基于计算机网络的电子投票,人们提出了很多或成功或失败的电子 投票协议。1981 年,美国密码学家 chaum 设计了一种通过匿名信道传递选票的 模型,成为了第一个现代意义上的电子投票协议,该协议通过让投票人利用数字 假名进行投票来实现选票的匿名性。1985 年,cohen 和 fisher 提出了基于同态 加密技术的电子投票协议。接着 benaloh ,iverson ,sako 等人也分别提出了不 同的电子投票协议。这些协议有其各自的优点,但同时也存在一定的缺陷,有的 协议需要大规模的传输与计算;有的协议需要投票者之间进行相互通讯;还有的 协议只要一个投票者出现了错误,整个投票就会被搅乱。以上的投票协议要么太 复杂,要么就是安全方面存在大的漏洞,实用性都不太强35。 1992 年,日本学者 fujioka ,okamoto 和 ohta 提出了一个基于位承诺和盲 签名等密码技术的电子投票协议 foo 协议,该协议的算法易于实现,网络 通信量较少,既能保证投票的公平性,又解决了投票者身份的匿名性问题,具有 较强的实用性。许多大学和研究机构都以 foo 协议为基础,对其进行改进,开 发出了实验性的电子投票软件系统,如麻省理工学院的 evox 系统、华盛顿大学 的 sensus 系统等67。但由于 foo 协议本身还存在着投票效率较低以及不允许 投票者弃权等缺点,所以在开发电子投票系统软件的时候,研究机构的设计者们 对 foo 协议分别进行了相应的改造。然而,对 foo 方案的更改又引入了新的 问题,比如 sensus 系统投票的中间结果就有可能泄漏;而在 evox 系统中,则 存在着一些管理机构可以舞弊的漏洞78。 到目前为止,已有多位学者就 foo 协议中存在的问题提出了不同的解决方 案。然而,电子投票是一个涉及网络安全、数据保密、计算机通讯乃至国家法律 等诸多方面的复杂系统,迄今为止,无论是在理论方面还是在实际应用方面,都 没有一个完全令人满意的电子投票方案,可以这么说,通过计算机网络进行大规 模电子投票的系统仍然处于摸索、实验和开发阶段。 1.3 电子投票的定义与要求电子投票的定义与要求 电子投票的定义如下9:电子投票以密码学为基础,运用计算机和网络技术来 3 实现投票功能。与传统的手工投票方式相比,它提供了更高的效率和更大的灵活 性。要使电子投票方式能够安全、可靠地运行,除了必须要保证计算机和网络功 能能够正常运转之外,最根本和最重要的一点就是:首先必须在密码学技术的基 础之上设计出安全的电子投票协议。 很多电子投票协议的研究者根据不同的投票情况,对电子投票协议制定了需 要达到的不同要求。一般来说,一个电子投票协议在安全性上应该满足以下七个 方面的基本要求1012: 完全性 如果协议的各参与方都诚实,则投票结果是可信的,所有有效的 选票都应该被正确统计。 准确性 合法的选票不能被篡改,不合法或伪造的选票不能被接受。 匿名性 除了投票人本人外,任何人都不能将选票和投票人对应起来以确 定某个投票人的投票内容。 不可重用性 只允许合法的投票者进行投票,且只能投一次。 合法性 只有经过授权的人才有资格投票。 公正性 主要指在投票过程中不能泄漏中间结果。 可验证性 任何投票者都可以检查自己的选票是否被正确统计,任何人都 可以对投票结果进行验证。 另外,要使电子投票协议具有更大的实用性,还必须满足以下几个要求1213: 灵活性 对投票的人数和场地不应有任何限制,各投票者的投票活动相互 独立,不受影响,不需要在同一时间内一起参加投票。 方便性 系统应该简单、方便,对投票者来说,投票所需的知识和操作不 能太多。 1.4 本文的主要任务本文的主要任务 综上所述,电子投票的研究重点是电子投票协议的设计,而目前电子投票协 议的研究领域中最著名且又最适于应用的首推 foo 协议。但是 foo 协议在实 际应用中还是遇到了一些难以克服的困难。本论文就是针对上述存在的问题,对 其进行分析和研究,结合密码学中的有关技术,对 foo 协议进行改进,设计出 一个新的电子投票协议。并对该协议进行系统化设计,以形成一个实际的电子投 票系统,最后实现该系统中的关键部分。 4 1.5 本文的内容组织本文的内容组织 第一章对本文的研究背景,电子投票的发展现状、定义和要求进行了简单的 介绍,并提出了本文主要的研究对象和工作目标。 第二章简要介绍了电子投票系统主要采用到的相关技术和所涉及的密码学相 关原理知识。 第三章对 foo 协议进行了描述,并对其安全性进行了分析,指出了该协议 存在的不足。 第四章在 foo 协议的基础上进行改进,设计出一个新的电子投票协议,并 分析了新的协议的性能、安全性和特点。 第五章基于新的电子投票协议,对电子投票系统进行了详细的设计,并对系 统的关键部分进行了详细的介绍。 第六章对全文进行了总结,并对今后的发展和需要的进一步研究工作进行了 探讨。 5 2 主要采用的相关技术主要采用的相关技术 在电子投票中用到了许多密码技术,正是这些先进的技术确保电子投票的公 正和安全,使其从最初的简单设想成为可以实现的协议与模型,并最终应用在实 际生活中,而且电子投票协议也都是用密码学中的原理描述和实现的。可以说, 电子投票系统的发展离不开密码技术的发展。因此,在对电子投票协议进行分析 和研究之前,必须对相关的技术进行一个简要的介绍。 2.1 对称加密技术对称加密技术 对称加密技术的加密密钥能够从解密密钥中推算出来,反过来也成立。多数 的对称算法采用相同的加密/解密密钥,这些算法也叫做单密钥算法。通常,采用 对称加密技术进行通信如图 2.1 所示: 密钥生成器密钥生成器 加密算法加密算法解密算法解密算法密文明文原始明文密文明文原始明文 发送方接收方发送方接收方 密钥 密钥 (秘密信道) (公共信道) 密钥 密钥 (秘密信道) (公共信道) 图 2.1 对称加密技术 对称加密技术算法简单容易实现,加密速度快,系统开销小。但是它也存在 着一些明显的缺陷: 在进行通信之前,通信双方需要通过秘密的方式协商一个密钥。如果密钥 泄漏,通信的安全性就无法保证。 每对用户之间必须有不同于其它用户的密钥,否则安全性就会受到威胁, 这样,在具有多个用户的团体中相互通信所需要的密钥规模将非常庞大。 2.2 非对称加密技术非对称加密技术 1976 年,美国学者 diffie 和 hellman 提出了一种新的加密技术非对称 加密技术,也称公钥加密技术。公钥加密技术建立在数学函数的基础上,使用数 6 学上相关的两个密钥:一个可对外公开,称为“公钥” ;另一个由个人秘密持有, 称为“私钥” 。如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用 私钥对数据进行加密,那么只有用对应的公钥才能解密,同时,无法由一个密钥 推知对应的另一个密钥1415。使用非对称加密技术进行通信如图 2.2 所示16。 密钥生成器密钥生成器 加密算法加密算法解密算法解密算法密文明文原始明文密文明文原始明文 发送方接收方 私有密钥 发送方接收方 私有密钥 公开密钥 (公共信道) (公共信道) 公开密钥 (公共信道) (公共信道) 图 2.2 非对称加密技术 与对称加密技术相比较,利用非对称加密技术进行安全通信有以下优点15: 解决了密钥分配问题,通信双方可以在公共信道上进行密钥传送,适合于 在分布式环境中进行安全通信。 密钥持有量大大减少,在 n 个用户的团体中进行通信,整个团体仅需要 拥有 n 对密钥就可以满足相互之间进行安全通信的需求。 提供了对称加密技术无法或很难提供的服务:如进行数字签名等。 但是,非对称加密技术的加密/解密速度比对称加密技术要慢得多,而且耗用 资源较多。因此,通常把非对称加密技术与对称加密技术结合起来实现最佳性能。 自从非对称加密技术的概念提出之后,基于数论和其他数学分支中的原理, 人们提出了很多算法,常见的有 rsa 、 elgamal 和 rabin 等。其中 rsa 算法 应用最为广泛,且是本系统中主要使用的算法,因此下面对 rsa 算法做简要介 绍。 rsa 算法是第一个比较完善的公钥加密算法,它的安全性是基于大数分解的 困难性之上的,该算法比较容易理解和实现,可用于数字签名和加密14。 为了产生两个密钥,选取两个大素数: p 和 q ,为了获得最大程度的安全 性,p 和 q 的长度一样。计算乘积 n = p q ,然后随机选取加密密钥 e ,使 e 和 (n) = (p-1) (q-1) 互素。最后计算解密密钥 d ,使 d 满足 e d 1 mod ( p-1) ( q- 1) ,注意 d 和 n 也互素。e 和 n 是公开密钥,d 是私有密钥。两个素数 p 和 q 不再需要,但不能暴露。 7 加密消息 m 时,首先将它分成比 n 小的数据分组,对每个数据分组 mi 计 算 ci = mi e ( mod n ) ,得到长度相同密文分组 ci ,最终密文 c 由 ci 组合成。解密 消息时,取出每一个加密后的分组 ci 并计算:mi = ci d ( mod n ) ,最后将 mi 合并 从而恢复出明文。 2.3 单向散列函数单向散列函数 单向散列函数 h ( m )是将任意长的数字串 m 映射成固定长度的数字串 h 的函 数。这个固定长度的数字串 h 就被称为原输入消息的“散列”或“消息摘要” 。 除了输出为固定长度之外,单向散列函数还具有如下特性1618: 给定 m ,很容易计算 h 。 给定 h ,要计算出 m ,使得 h ( m ) = h 很难。 给定 m ,要找到另一消息 m 并满足 h ( m ) = h ( m ) 很难。 散列值简要地描述了一份较长的信息或文件,它可以被看作一份长文件的“数 字指纹”。对于特定的信息而言,散列值是唯一的。散列值可以被公开,它不会透 露相应信息的任何内容。当发送方将发送的信息和提取出的“指纹”发送给接收 方,那么接收方只需重新提取接收到的信息的“指纹”并和接收到的“指纹”进 行比对,就可以鉴别信息的真伪16。 目前常用的单向散列函数算法有 md5 算法和 sha 算法。 2.4 数字签名技术数字签名技术 2.4.1 数字签名的原理和特性数字签名的原理和特性 数字签名是由美国学者 diffie 和 hellman 提出的。通俗地讲,数字签名是手 写签名的模拟,包含一些数据使得能够验证签名者就是消息的发出者。因此,它 能够防止下面的四类问题1920: 否认:发送者事后不承认己发送过这样一份文件。 伪造:接收者伪造一份来自发送者的文件。 篡改:接收者对接收到的信息进行部分篡改。 冒充:网络中的某一用户冒充另一用户作为发送者或接收者。 由于非对称加密技术的加密速度较慢,系统开销较大,因此在实际应用中, 一般不直接使用,而是结合单向散列函数来实现数字签名。在数字签名过程中, 8 通过单向散列函数对要发送的原始文件进行变换,得到原始文件的散列值,并将 散列值用私有密钥加密后,附加在原始文件后面发送给接收方,用以确认发送者 的身份和文件的完整性。数字签名的机制如图 2.3 所示21。 原始文件原始文件 散列值散列值 单向散列 函数 单向散列 函数 加密算法加密算法 加密后的 散列值 加密后的 散列值 原始文件原始文件 发送 方的 私有 密钥 发送 方的 私有 密钥 加密后的 散列值 加密后的 散列值 散列值散列值 单向散列 函数 单向散列 函数 解密算法解密算法 解密后的 散列值 解密后的 散列值 原始文件原始文件 发送 方的 公开 密钥 发送 方的 公开 密钥 加密后的 散列值 加密后的 散列值 比较比较 图 2.3 数字签名机制 2.4.2 盲签名盲签名 在数字签名中有一类具有特殊功能的的签名叫做盲签名,它的基本概念首先 是由美国密码学家 chaum 于 1982 年提出的。它是指签名者看不见要他签名的信 息的具体内容,也不知道最终的签名结果,而信息的拥有者又可以从签名人对盲 化后信息的签名中得到签名人对真实信息的签名2224。 盲签名的机制如图 2.4 所示。 盲变换盲变换签名签名脱盲变换脱盲变换 消息m 盲化后的 消息m 消息m 盲化后的 消息m 对盲消息的 签名s(m 对盲消息的 签名s(m) 对消息的 签名s(m) ) 对消息的 签名s(m) 图 2.4 盲签名机制 chaum 在提出盲签名这一概念时给出了一个实现方案,具体过程如下25: 假设签名者 b 有一个公开密钥 e ,一个私有密钥 d ,和一个公共模数 n , 用户 a 希望 b 对其消息 m 进行签名。 a 取一个随机值 r ,通过下列运算来对消息 m 进行盲变换,从而隐藏 m : m = m r e mod n a 把盲消息 m 发送给签名者 b 。 b 对盲消息 m 签名为 s ( m ),并将 s ( m ) 发送给 a 。 9 s ( m ) = ( m ) d mod n a 通过下列计算脱盲出 b 对原消息 m 的签名 s ( m ): s ( m ) = r -1 s ( m ) mod n = r -1 ( ( m r e mod n ) d mod n ) mod n = m d mod n 盲签名技术可以有效的保护被签名者的有关信息,正是基于这个特点,它在 电子银行和电子商务等领域发挥着不可替代的作用,在电子投票领域,盲签名也 有着重要的应用。foo 模型之所以成功,一个很重要的原因就是它在该领域引进 了盲签名技术。 2.5 位承诺技术位承诺技术 位承诺又叫比特承诺,是密码协议的重要成分,它的基本思想如下:承诺者 向接收者承诺一个消息,承诺过程要求满足:承诺者向接收者承诺时,接收者不 可能获得承诺消息的任何信息。一段时间后,承诺者能够向接收者证实她所承诺 的消息, 但是承诺者不能欺骗接收者2628。 一个简单的承诺方法例如: a 要向 b 承 诺一个消息 m ,承诺者 a 生成两个随机数 r1 和 r2 ,利用单向散列函数 h 计 算 h = h ( r1 ,r2 ,m ) ,并向 b 发送 r1 和 h 。当 a 向 b 出示消息 m 时, 她向 b 发送 r2 、 m 。 由单向散列函数的性质可知, 在 a 向 b 发送 h = h ( m , r1 ,r2 ) 后,b 不知道 m ,同样,由单向散列函数的性质,a 不能找到 r2 , m ,满足 h ( r1 ,r2 ,m ) = h ( r1 ,r2 ,m ) ,这使得 a 不能够欺骗 b17。 10 3 电子投票协议分析电子投票协议分析 日本学者 fujioka ,okatoma 以及 ohta 在 1992 年提出了一个简明实用的电 子投票协议 foo 协议。本文中设计的新的电子投票协议正是基于 foo 协 议,因此下面将对 foo 协议进行详细的描述和分析。 3.1 foo 协议的描述协议的描述 3.1.1 foo 协议的基本设置协议的基本设置 foo 协议有三个参与实体:投票人、管理者、统计者,其中管理者和统计者 组成投票中心。协议中各实体所拥有的相关信息如表 3.1 所示。此外,协议还公开 一个单向散列函数 h 以及位承诺方案 f 。 表 3.1 foo 协议中各实体相关信息符号表示 参与实体公开信息私有信息签名表示 投票人 vi身份标识 id i位承诺随机数 k i 盲化因子 r i s i 管理者 a公开密钥 ( e a ,n a )私有密钥 d ad a 统计者 c公开密钥 ( e c ,n c )私有密钥 d cd c 3.1.2 foo 协议的设计协议的设计 foo 投票协议主要分六个阶段进行,描述如下29: 准备阶段 投票人 vi填写好一张选票 vi ,选择一个随机数 k i ,用位承诺方案 f 加密 v i :x i = f ( v i ,k i ) 。vi再选择一个盲化因子 r i ,盲化 x i :e i = r i h ( x i ) ea mod n a 。vi 对 e i 签名:s i =( e i ) ,然后将 ( id i ,e i ,s i ) 发送给投票管理者 a 。 管理者授权投票阶段 管理者 a 检查投票者 vi 有无投票权利,若 vi 无权投票,则 a 拒绝颁发投 票验证签名;否则 a 检查 vi 是否已经申请了投票证书,如果已申请,则 a 拒绝 给其再次颁发投票证书;最后 a 检查 s i 是否是消息 e i 的合法签名,如果是, 则 a 对 e i 签名:d i = e i da mod n a 。并将 d i 作为投票证书发送给 vi 。在授权 投票阶段结束后,a 公布已经颁发的验证签名总数和包含 ( id i ,e i ,s i ) 的表。 11 投票阶段 投票者 vi 对 di 脱盲恢复出 x i 的签名 y i : y i = ( r i -1 di ) mod n a 。 vi 检查 y i 是否是 a 对 x i 的合法签名,如果不是,vi 向 a 证明 ( x i ,y i ) 的不合法,并 选用另一个 vi 来重新获取投票验证签名;否则,vi 匿名的将 ( x i ,y i ) 发送给 统计者 c 。 收集选票阶段 统计者 c 通过使用 a 的签名验证方程来检查 y i 是否是 x i 的合法签名,如 果是,c 将 ( w ,x i ,y i ) 添加入表 3.2 中,其中 w 是 ( x i ,y i ) 的编号。在所 有的投票结束后,c 将该表公布。 表 3.2 收集选票阶段的选票表 编号选票和附加信息 wx i ,y i 公开选票阶段 投票人检查 a 公布的投票者的数目是否等于 c 公布的选票数目,如果不等, 则要求投票人公布这些选票在加密时所使用的盲因子 r i 。投票人 vi 检查他的选 票是否在表中,如果不在,他公开 ( x i ,y i ) ,并要求投票中心将其选票列入表 中。 投票人 vi 用序号 w 来对应自己的密钥 k i ,并将 ( w ,k i ) 匿名地发给 c 。 统计选票阶段 c 使用 ( w ,k i ) 打开选票的位承诺,恢复出选票 v i ,并检查 v i 是否是合 法的选票。最后进行统计,并将统计结果公布(见表 3.3)。 表 3.3 统计选票阶段的选票表 序号选票信息和统计结果 wx i ,y i ,k i ,v i 12 3.2 foo 协议的安全性分析协议的安全性分析 foo 协议为了保证协议的安全性需要,应用了位承诺、盲签名和数字签名等 多种密码技术。在对协议进行分析之前,必须假设使用的各种密码技术是安全的。 完全性 选票必须获得管理者的授权才是有效的,因此只有合法的投票者才能进行有效 投票。设立公告等跟踪机制,确保了所有关心投票的人都可以对投票的结果进行 跟踪验证,保证了投票结果的诚实、可靠。因此该协议满足了完全性。 准确性 投票者可能通过发送大量无效选票的方式来扰乱投票活动,该协议可以在计 票阶段发现这种干扰行为。但是,如果几个投票者产生了相同的位承诺密钥且选 票内容是相同的,对于计票者来说只能选择其中的一张选票,这就是所谓的“选 票碰撞”问题。此外,当投票者弃权时,管理者有可能冒充投票者投票而不会被 发现。所以,只有在选票没有发生“碰撞”并且投票人不会弃权的情况下,foo 协 议才满足准确性。 匿名性 投票者将选票发送给管理者申请授权签名时,由于盲签名技术的使用,管理者 无法确定被签名选票的真实内容。而选票 x i 和密钥 k i 都是匿名发送出去的,因 而不可能将投票者的身份标识 id i 与选票 x i 联系起来。此外,当投票者要揭发管 理者或统计者冒充自己进行投票时,只需要出示 ( x i ,y i ) 即可,这样保证了选 票内容的保密,因而满足匿名性。 不可重用性 同一个人要投两次票,他必须拥有两个有效的 ( 选票,管理者的盲签名 ), 根据协议的规定,每个合法的投票者只能得到一个有效的 ( 选票,管理者的盲签 名 ),同一个人要想投两次票,就必须伪造一个 ( 选票,管理者的盲签名 ),这 需要与管理人员合谋,而且还必须有人弃权而不进行投票。因此从投票者的角度 来说,协议满足不可重用性。 合法性 如果有人想冒充合法的投票人进行投票,他必须获得管理者的授权。而管理者 在对投票者进行授权前,必须对申请的投票者的数字签名进行验证。非合法人员 13 要想冒充合法人员投票,就必须能够破解合法人员的数字签名。因此依赖于数字 签名的安全性,协议满足合法性的要求。 公证性 在协议的投票阶段,投票人将经过位承诺处理的加密选票发送给统计者,统 计者将这些加密的选票公布出去,便于公众查询、验证。但是在计票工作开始之 前,由于缺少位承诺密钥,除投票人本人外的任何人都不可能获得选票的真实内 容,从而保证了投票的中间结果不会泄漏。因而该协议满足公证性。 可验证性 在协议的各个阶段,都有相应的信息公布出来。人们可以利用这些信息,对 投票的结果进行验证,检查投票过程中是否有作弊行为。下面分析投票中心的作 弊可能:如果没有投票人弃权,这时公布的登记投票人和实际投票人数应该相等, 如果此时管理者伪造选票进行投票,由于实际投票人数大于登记的投票人数,合 法的投票人可以通过下列方法表明自己是合法的投票人,并且得到了管理者的授 权:投票者出示其用于盲签名方案中的随机数 r i ,当 r i 公布以后,进行盲签名 的 e i 被唯一确定,而管理者出示的投票者的数字签名也应该是唯一的。如果管理 者伪造选票进行投票,他无法伪造出投票者的数字签名,因此这些多余的选票就 无法出示相应的数字签名,管理者的舞弊行为就被暴露。但是当投票者弃权而不 进行投票时,管理者就有可能冒充投票者进行投票,这时如果弃权的投票者不主 动揭露的话,那么这种作弊行为就很难被发现30。 也就是说,foo 协议在没有人弃权的情况下,满足可验证性。 3.3 foo 协议存在的问题协议存在的问题 通过对 foo 协议的分析,可以知道在投票过程中如果协议的各个参与方是 诚实的,那么整个投票结果是可信的。但是该协议在某些情况下存在着一些问题 3031: 同步问题 该协议要求所有的投票必须同步进行,如果有人提前进行了某些步骤,则投 票的安全性就无法保障。比如,如果有投票人提前将自己的位承诺密钥发送给统 计者,则统计者就可以在投票阶段泄漏中间结果,从而对协议的公证性造成影响。 效率问题 14 由于 foo 模型将投票和计票分成两个阶段进行。投票者必须在不同的阶段 向投票中心发送不同的信息,这样对于投票者来说整个过程十分烦琐。对于整个 投票过程来说,必须要等到所有的投票者将密钥发送给统计者之后才可统计投票 结果,这无形中就大大降低了整体的效率。 弃权问题 该协议不允许投票者弃权,否则管理者就可以假冒合法投票人进行投票。因 为该协议中投票者的身份识别和选票的授权签名全部由管理者负责,这样选票的 有效性仅仅依赖于管理者的签名,如果有投票者弃权的话,管理者就有可能冒充 投票人进行投票。 选票碰撞问题 在大规模的投票活动中,有可能出现两位以上的投票人由于使用相同的位承 诺密钥且选票内容一致,造成位承诺的结果相同。这就是所谓的“选票碰撞” ,在 这种情况下,统计者根据一定的机制会将多余的选票去除,造成投票者的选票没 有被计入的情况。 重放问题 攻击者有可能将某次投票活动中的选票截取下来,并直接用于下次类似的投 票活动中,由于重放的选票拥有管理者的数字签名,因此可以通过统计者的验证 并被记录为有效选票,这样便破坏了投票过程的准确性。 总的来说,foo 协议是一个比较理想的投票协议。但其中也存在着某些不尽 如人意的地方, 而这些缺陷正是改进和完善的方向。 论文下面的工作就是要在 foo 协议原有的基础进行改进,设计出更加完善的电子投票协议。 15 4 新协议的研究与设计新协议的研究与设计 通过上一章的分析和介绍可以看出,foo 协议是一个简洁明了的协议,适合 于进行大规模的投票,但是它依然存在的一些缺陷,本章详细分析了产生缺陷的 原因,提出了改进的策略和方法,并在此基础上设计出一个新的电子投票协议。 4.1 分析与改进分析与改进 长期以来,研究人员针对 foo 协议中存在的问题提出了各种改进的意见和 方法,主要的思路集中在采用分布式的思想将投票中心的权利分散,虽然这些方 法可以有效的解决存在的某些问题,但在实现上却需要大量的信息交互,违背了 foo 协议简捷方便,易于实现的原则32。 传统的投票方式虽然在安全性上存在着一定的缺陷,但是它能够长时间的应 用于实际生活中,也必定有它自身的优点。而且在长期的演化过程中,传统投票 方式也渐渐形成了维护其安全性的机制,这些机制虽然无法从根本上解决存在的 缺陷,但它对电子投票协议的设计还是具有借鉴意义的。事实上,foo 协议之所 以能够成为著名的协议并且被广泛的采用,一个方面的原因就是它的运作方式同 传统的投票方式比较接近,易于被接受。 在传统的投票方式中,为了避免投票中心的舞弊,总是将投票中心分成多个 不同的分支机构,不同的分支机构在投票过程中扮演不同的角色,完成不同的任 务,例如有的机构专门负责接受投票人的注册,有的机构专门负责选票的收集, 而另有专门的机构负责选票的统计工作等等。这样就避免了某个机构的权利过大 而进行舞弊。对照之下,foo 协议中的管理者就存在权利过大的弊病,它既知道 投票者的身份信息,同时也负责对投票人的投票进行授权,很容易给某些管理者 造成可乘之机,这是造成投票中心作弊的直接原因3335。 在传统的投票方式中,一般还存在一个独立的监督机构,投票过程中的所有 信息都必须通过监督机构的检验,投票过程的各个步骤也必须在监督中心的允许 下才能进行,以此来保证投票的公正性。而 foo 协议并没有设立监督机构,而 是把监督的权利通过公告的形式交给了投票者。投票者只有验证了公告信息后之 后才将手中的选票密钥寄出,这就直接导致了投票过程的效率降低35。 16 传统的投票方式一般还对选票进行统一的管理,选票由投票中心统一发放, 选票的样式和内容有严格的规范。而 foo 协议中的选票则是由投票人自己生成的, 不利于选票的甄别和统计。 通过借鉴传统投票方式的优点,可以找出 foo 协议存在缺陷的根本原因主要 包括三个方面: 投票中心的某些权利过于集中于一个机构。 投票中心的各个机构之间缺乏监督机制。 投票中使用的选票缺乏统一有效的管理。 针对这些原因,本文提出相应的 3 个方面的改进策略: 对原有的投票中心进行调整,将管理者的功能一分为二,一部分负责对投 票者身份进行管理,另一部分则负责对投票者的投票进行授权。 在投票中心内部添加一个监督机构,负责对整个投票过程有效性的监督, 同时代理投票人在统计阶段揭示位承诺密钥。 对选票进行有效的管理,对每张合法选票进行相应的编号,并要求投票人 投出的选票中必须包含本次投票活动的标识。 4.2 新的电子投票协议的设计新的电子投票协议的设计 根据上一节提出的改进策略,以 foo 协议为基础,借鉴廖鸿图、鲁军等人 提出的设计方案的思想3638, 采用多种密码技术, 设计出了一个新的电子投票协议。 4.2.1 协议的基本设置协议的基本设置 新的电子投票协议包括投票者和投票中心两大部分。其中投票中心又分为管 理中心、授权中心、统计中心和监督中心四个个分支机构。各个分支机构的主要 职能为: 管理中心:负责处理用户的注册申请,并向投票人发放选票。 授权中心:负责验证投票人的身份并对合法投票人的选票进行授权签名。 统计中心:负责收集投票人发送的选票,在投票结束后对有效选票进行统计 并公布投票结果。 监督中心:负责对投票过程中产生的信息的正确性进行检查,并代理投票人 在统计选票时揭示位承诺密钥。 表 4.1 是对本协议中各分支机构相关信息的符号表示。 17 表 4.1 协议中各分支机构相关信息的符号表示 公开密钥私有密钥 投票人 voter i( e i ,n i )d i 管理中心( em ,nm )d m,km 授权中心( e a ,n a )d a 统计中心( e c ,n c )d c 参 与 实 体 投 票 中 心 监督中心( e s ,n s )d s 其中,km是管理中心的 des 秘密密钥,ekm ( m ) 表示用密钥 km 加密信息 m, dkm ( m ) 表示用密钥 km 解密信息 m 。另外,文中“|”用来表示连接符号,p 表 示选票中候选项的数目,q 表示投票人必须选择出的选项数目。 4.2.2 协议的详细设计协议的详细设计 新的电子投票协议主要分为初始化、注册、投票、开票统计四个阶段。在初 始化阶段,协议的各个参与实体完成相关信息的准备工作;在注册阶段,所有希 望参与本次投票的投票人向管理中心进行注册,以得到进行投票所需要的信息; 在投票阶段,投票人填写好选票并投出,完成本次投票行为;在开票统计阶段, 投票中心在各个分支机构的协助下开启选票,并进行统计和公布。新协议的投票 步骤接近于传统的投票方式。下面详细介绍各个阶段的详细执行步骤。 第一阶段:初始化阶段 在初始化阶段中,投票中心的各个分支机构分别为自己产生一个基于 rsa 公 钥体制的密钥对,管理中心另外为自己产生一个 des 秘密密钥,密钥的符号表示 如表 4.1 所示。同时,监督中心选择一个安全的单向散列函数 f 和一个用来标识 本次投票的随机数字串 rd 。各分支机构的公开密钥以及 f 和 rd 公开。 第二阶段:注册阶段 该阶段完成投票人的注册登记工作。注册登记由投票人提出申请,由管理中 心在监督中心的协助参与下完成。具体的信息流程如图 4.1 所示。 18 管理中心管理中心 投票人投票人 监督中心监督中心 授权中心授权中心投票人信息 数据库 投票人信息 数据库 f f( (idid 1 1 ) ) e e 1 1 n n 1 1 f f( (idid 2 2 ) ) e e 2 2 n n 2 2 f f( (idid i i) ) e e i i n n i i 投票 人信 息 ( 投票 人信 息 (idid,e e,d d,n n) ( ) (idid,投票人信息) 密钥 生成 请求 ( ,投票人信息) 密钥 生成 请求 (e e,d d,n n) ( ) (f f( (idid),),e e,n n) ) e e 1 1 n n 1 1 e e 2 2 n n 2 2 e e i i n n i i 公钥登记表 投票人公钥表 公钥登记表 投票人公钥表 图 4.1 注册阶段信息流程图 投票人 voter i 向管理中心提出注册申请,并按规定把注册所需要的个人相 关信息发送给管理中心。 管理中心判断 voter i 提交的信息是否合格,如果不合格,则驳回注册请求; 否则,为其产生一个唯一的身份标识符 id i ,并将 ( id i ,投票人信息) 存入“投 票人信息数据库”中。同时向监督中心申请一个 rsa 密钥对。 监督中心在接到管理中心的申请后,随机生成一个密钥对:( e ,n ) 和 d , 并将 ( e ,n ) 记录到“公钥登记表”中,然后将 ( e ,n ,d ) 返回给管理中心。 管理中心收到密钥对后, 计算 id 的散列值 f ( id ) ,将 ( f ( id ) , ( e , n ) ) 发送给授权中心,同时将 ( id ,e ,d ,n ) 发送给 voter i ,表示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论