详情

vc00308 基于零知识证明的身份认证系统设计与实现

项目介绍

摘要

为了适应了网络安全的需要,人们研究了一种多种现代加密技术,它可以提供我们进行一般的网络活动的安全保障。零知识指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。大量事实证明,零知识证明在密码学中非常有用。如果能够将零知识证明用于验证,将可以有效解决许多问题。

本文研究了零知识的内容,对加密算法的要求。使用Visual C++,开发实现了一个零知识身份认证系统,该系统可以通过RSA算法,利用配对的公钥私钥对人的身份进行认证。

  关键词:公钥加密系统,RSADESAES

基本原理

80年代初,Goldwasser等人提出了零知识证明这一概念。从本质上讲,零知识证明是一种协议。所谓协议(Protocol),就是两个或两个以上的参与者为完成某项特定的任务而采取的一系列步骤,包括以下三个特征:

1. 协议自始至终是有序的过程,每一步骤必须依次执行,在前一步骤没有执行完之前,后面的步骤不可能执行。

2. 协议至少需要两个参与者,一个人可以通过执行一系列的步骤来完成某项任务,但它不构成协议。

3. 通过执行协议必须能够完成某项任务。

零知识证明必须包括两个方面,一方为证明者,另一方为验证者。证明者试图向验证者证明某个论断是正确的,或者证明者拥有某个知识,却不向验证者透露任何有用的消息。零知识证明目前在密码学中得到了广泛的应用,尤其是在认证协议、数字签名方面,人们利用数字签名设计出了大量优良的算法。常用的就是RSA算法,其基本步骤如下:

1)大质数的获取

质数是只能由他本身和1相乘得到的数,RSA加密的安全性基于这么一个假设: 分解因子在计算上是困难的,就是说很容易将两个质数相乘,但是确不容易分解该乘积。因此质数的生成与获取是RSA安全的保证。根据数论的基本原理,如果一个数不能被2到他的平方根的数整除的话,那这个数就是一个质数。因此,一个数是否为质数的基本方法就是把这个数从2开始到其平方根分别进行除法,如果没有找到其因子,那么这个数就是质数。为了获取任意位数的质数,我们采用生成随机数的方法,任意生成两个足够大的随机数,分别对这两个数做递增运算,直到增长到为质数为止。这样我们就有两个足够大的质数了,记为:pq

2)密钥的计算

公钥是用以加密的密钥,它是对外公开的一对数,为了表达方便,统一记为:PKen)。私钥是用来解密的密钥记为:SKdn)。计算n 的方法为:n=p*q,计算(p-1)*(q-1)的值为phi ,e是公钥中的一元,它是随机选取的,但是必须满足条件是大于1且小于phi并且与phi互为质数。私钥中的d必须满足d*e=1(mod phi),通过对这个方程的求解可以解出d

系统模块分析

根据系统功能需求,把系统划分为以下几个模块:

l  用户接口模块

完成与用户的交互,具体就是执行控制、单步控制、重新演示程序等。

l  质数生成模块

根据对位数的要求,生成大质数。

l  公钥计算模块

根据生成的大质数,计算公钥。

l  私钥计算模块

根据生成的大质数和公钥,计算私钥。

l  加密模块

使用密钥进行加密。主要包括字符串数字化,加密运算等。

l  解密模块

进行解密运算,对于解密文本进行字符化。

       各模块功能上相互依奈性比较强,可以思路清晰,加密过程程序化,简洁易读。

站长说明

        成品毕业设计 可以根据自己的要求 ,  自行浏览选购, 可以参考是否符合自己要求,找到满意的成品毕业设计 , 直接发送成品编号联系发你网址的工作人员进行交易,  我们会从 QQ或者邮箱等方式发送毕业设计程序。

        我们团队,可以根据用户的功能要求量 身定制毕业设计程序 (同样联系发你网址的 工作人员) ,  需要用户提供详细的 , 功能要 求.开发技术要求(开发语言、开发工具、框 架等 ) .我们会根据用户毕业设计的难易程 度 ,工作量大小等,具体的给出一个报价,价格 协商一致过后,付下40%定金.我们开始开 发毕业设计, 做好过后先发送设计桌面演示录像 , 用户看后 满意付尾款, 我们再发程序源码压缩包.

联系方式

qq:318500104




项目推荐