基于区块链和门限密码的安全投票系统(Python+Django+Node+web3+SQLite3) 毕业论文+文献综述+方案对比+图形源文件+参考文献+项目源码

摘要

2022年1月28日,中国创建首个区块链与隐私计算科技创新平台,为解决多方协作和多方信任等安全性问题提供了有力支持。区块链实现数据可信存储,隐私计算保护实体秘密提供可信计算,如果将隐私计算的数据部署到区块链,并由智能合约触发,那么可以解决传统领域各种实际问题。本文基于区块链和隐私计算技术构建了安全的去中化的电子投票应用以解决传统投票系统中的安全隐私问题。

本文提出一种安全电子投票方案。在可信数据安全存储方面,使用区块链及其上运行的智能合约提供信息安全的运行环境。区块链上的信息公开可访问,确保投票记录的公开透明性;智能合约满足条件就自动触发计算,避免人为的干涉。在可信计算安全执行方面,使用基于门限密码体制的盲签名协议和同态解密算法。首先引入Schnorr盲签名协议,投票签名不完全依赖于单一签名机构,而是由所有签名机构与投票者共同生成。其次,计票统计在不公开解密私钥情况下执行安全计算,同时零知识证明保证计票机构发布信息的可验证性,增强了方案的健壮性。最后,证明了所提方案满足电子方案的基本安全要求,并具有去中心化及鲁棒的特性。

本文设计了一个基于以太坊安全的电子投票系统。首先在python中实现了本方案核心算法,然后在以太坊开发环境完成整个投票系统的搭建与部署,最后通实验数据综合分析系统的性能,并证明所提方案可应用于大规模的选举活动。

关键词:电子投票;门限密码体制;盲签名;区块链;隐私计算

Abstract

On January 28, 2022, China created the first technology innovation platform
for blockchain and privacy computing, providing strong support for solving
security issues such as multi-party collaboration and multi-party trust.
Blockchain realizes trusted storage of data, and privacy computing protects
entity secrets and provides trusted computing. If the data of privacy
computing is deployed to the blockchain and triggered by smart contracts,
various practical problems in the traditional field can be solved. This paper
builds a secure decentralized electronic voting application based on
blockchain and privacy computing technology to solve the security and privacy
issues in traditional voting systems.

This paper proposes a secure electronic voting scheme. In terms of secure
storage of trusted data, the blockchain and the smart contracts running on it
are used to provide a safe operating environment for information. The
information on the blockchain is publicly accessible to ensure the openness
and transparency of voting records; the smart contract will automatically
trigger calculations to avoid human intervention. In terms of secure execution
of trusted computing, blind signature protocols and homomorphic decryption
algorithms based on threshold cryptosystems are used. First, the Schnorr blind
signature protocol is introduced. The voting signature is not completely
dependent on a single signature agency, but is jointly generated by all
signature agencies and voters. Secondly, the voting statistics perform secure
calculations without disclosing the private key for decryption.At the same
time zero-knowledge proof ensures the verifiability of the information
released by the counting agency and enhances the robustness of the scheme.
Finally, it is proved that the proposed scheme meets the basic security
requirements of the electronic scheme, and has the characteristics of
decentralization and robustness.

This paper designs a secure electronic voting system based on Ethereum. First,
the core algorithm of this scheme is implemented in python, then the
construction and deployment of the entire voting system is completed in the
Ethereum development environment, and finally the performance of the system is
comprehensively analyzed through experimental data, and it is proved that the
proposed scheme can be applied to large-scale election activities.

Key words: electronic voting; threshold cryptosystem; blind signature;
blockchain; privacy computing

目录

摘要

Abstract

第一章 绪论

1.1 课题研究背景与意义

1.2 国内外研究现状

1.3 本文的内容

1.4 结构安排

第二章 相关知识与技术

2.1 区块链相关知识

2.1.1 区块链

2.1.2 以太坊

2.2 密码学相关知识

2.2.1 代数学知识

2.2.2 ElGamal密码体制

2.2.3 安全多方计算

2.2.4 门限密码体制

2.2.5 可验证秘密共享协议VSS

2.2.6 同指数零知识证明SEZ

第三章 安全的电子投票方案

3.1 电子投票的流程

3.2 电子投票的安全性分析

3.3 改进的协议

3.3.1 门限盲签名协议TBS

3.3.2 可验证的门限解密协议VTC

3.4 符号说明

3.4.1 安全性假设

3.4.2 实体与符号

3.5 投票过程概述

3.6 投票过程详情

3.6.1 准备阶段

3.6.2 密钥共享阶段

3.6.3 签名阶段

3.6.4 投票阶段

3.6.5 计票阶段

3.7 安全性与性能分析

3.7.1 安全性分析

3.7.2 性能分析

3.7.3 性能改进

第四章 系统设计

4.1 需求分析

4.1.1 参与人员分类

4.1.2 用例表格

4.1.3 非功能需求

4.2 总体设计

4.2.1 系统框架

4.2.2 接口设计

第五章 系统实现

5.1 环境搭建

5.2 基本算法

5.3 详细设计

5.3.1 管理模块设计

5.3.2 密钥共享模块设计

5.3.3 投票模块设计

5.3.4 计票模块设计

5.3.5 查询模块设计

5.4 实验分析

5.4.1 门限性能分析

5.4.2 智能合约gas分析

第六章 总结与展望

6.1 总结

6.2 展望

参考文献

致谢

![](https://img-
blog.csdnimg.cn/img_convert/984cc36ca8ed06176bf13cfe47d1285c.png)

![](https://img-
blog.csdnimg.cn/img_convert/53294988728f94ae9da91b74359b77e3.png)

![](https://img-
blog.csdnimg.cn/img_convert/538ffa3b6a6063c69a58456f4c79abaf.png)

![](https://img-
blog.csdnimg.cn/img_convert/14f9ce6545b28bd579944558ee4ece03.png)

![](https://img-
blog.csdnimg.cn/img_convert/17b53e426b3d64bd22989e2258e77718.png)

![](https://img-
blog.csdnimg.cn/img_convert/a25ec2ea335af0e0c834773ce2d95552.png)

![](https://img-
blog.csdnimg.cn/img_convert/4b75259c3b297734da8d4a1d32abe2b5.png)

![](https://img-
blog.csdnimg.cn/img_convert/b26214cfac07b351c87edb508d92919e.png)

![](https://img-
blog.csdnimg.cn/img_convert/2b2af35ec64abf186301f5771ad869d3.png)

![](https://img-
blog.csdnimg.cn/img_convert/e0e2cb2c5a39c4e7ad48adf3bb7914e7.png)

![](https://img-
blog.csdnimg.cn/img_convert/c949568a1faca909250f3a2e0400de3c.png)

![](https://img-
blog.csdnimg.cn/img_convert/4d65d7398294956ca80c54447e466fdd.png)

![](https://img-
blog.csdnimg.cn/img_convert/76e9a0841d26c8604f3368b8d2105761.png)

![](https://img-
blog.csdnimg.cn/img_convert/d5956697dcb5f08a3865854eab80f196.png)

![](https://img-
blog.csdnimg.cn/img_convert/7fd5105815849a2476135aa6ca8fa675.png)

学习网络安全技术的方法无非三种:

第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。

第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

第三种就是去找培训。

image.png

接下来,我会教你零基础入门快速入门上手网络安全。

网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。

第一阶段:基础准备 4周~6周

这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
image.png

第二阶段:web渗透

学习基础 时间:1周 ~ 2周:

① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
image.png

配置渗透环境 时间:3周 ~ 4周:

① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。

渗透实战操作 时间:约6周:

① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
image.png
以上就是入门阶段

第三阶段:进阶

已经入门并且找到工作之后又该怎么进阶?详情看下图
image.png

给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

  • 40
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值