#禁止右键复制模块,去掉下面的/*注释可使用#

安全电子选举

安全电子选举

期末复习

电子选举协议的安全需求

一般理想的选举协议至少应满足以下七点要 求:

(1)只有经授权的投票者才能投票;

(2)每个人投票不得超过一次;

(3)没有人能复制其他人的选票;

(4)没有人能修改其他人的选票;

(5)每个投票者都可以保证他的选票在最后的选举计数 中被计算在内

(6)任何人都不能确定别人投谁的票

(7)每个人都知道谁投了票,谁没有投

 

1.简单投票协议 

 

没有满足任何人都不能确定别人投谁的票(CTF知 道) 

 

 2.简单投票协议 

 

 

 

 

将Si(V)加密成ECTF(Si(V))的过程可以使用椭圆曲线加密算法来实现,具体步骤如下:

  1. 选择一个椭圆曲线E和一个生成元G。这些参数必须是公开的,并且已经被所有通信方所知道。
  2. 随机选择一个私钥k,并计算公钥P=kG。此时,k是Si(V)的加密密钥,P是公钥。
  3. 计算会话密钥s=H(P),其中H是一个哈希函数,用于将公钥P映射为一个会话密钥。s是一个对称密钥,用于加密数据。
  4. 使用会话密钥s对Si(V)进行加密,得到加密后的数据ECTF(Si(V))。
  5. 将公钥P和加密后的数据ECTF(Si(V))发送给接收方。 接收方可以使用私钥k和椭圆曲线算法来解密ECTF(Si(V)),具体步骤如下:
  6. 使用私钥k计算公钥P=kG。
  7. 计算会话密钥s=H(P)。
  8. 使用会话密钥s对ECTF(Si(V))进行解密,得到原始的Si(V)。 这样,Si(V)就被加密成了ECTF(Si(V)),只有拥有私钥k的人才能够解密。同时,使用哈希函数将公钥P映射为会话密钥s,保证了数据的机密性和完整性。

加密制表后,只有CTF拥有的私钥才能解密,所以他公布的加密制表,选民无法知道自己的票是否被计算。

没有满足  

每个投票者都可以保证他的选票在最后的 选举计数中被计算在内

任何人都不能确定别人投谁的票(CTF知 道)

 

3.使用盲签名的投票协议

 

 

  1. 系统管理员(CTF)将所有选民的身份信息进行盲化处理,得到盲签名投票的初始值,即对每个选民的身份信息进行盲化后得到的值,记为b1, b2, ..., bn。
  2. 每个选民选择一个候选人,将其编号作为投票结果进行盲化,得到盲签名投票的值,记为v1, v2, ..., vn。
  3. 系统管理员将盲签名投票的初始值和盲签名投票的值发送给签名者。
  4. 签名者对每个盲签名投票的初始值进行签名,得到盲签名,记为s1, s2, ..., sn。
  5. 签名者将所有盲签名的结果发送给系统管理员。
  6. 系统管理员将签名者返回的盲签名结果进行解盲,得到签名后的投票结果,记为r1, r2, ..., rn。
  7. 系统管理员将所有选民的盲化值和解盲后的签名结果发送给计票人进行计票。
  8. 计票人对解盲后的签名结果进行计票,得到最终的选举结果。 在这个过程中,选民的身份信息得到了保护,签名者无法知道选民选择的是哪个候选人,同时盲签名也保证了选民的投票结果不会被泄露。最终的计票结果也能够保证公正性和匿名性。

 

任何人都不能确定别人投谁的票(CTF知 道)—需要提供匿名信道

没有满足每个人都知道谁投了票,谁没有投这个要求

 

 

4.带两个中央机构的投票协议

 

 

 

 

 

 

  1. 系统管理员将所有选民的身份信息进行盲化处理,得到盲签名投票的初始值,即对每个选民的身份信息进行盲化后得到的值,记为b1, b2, ..., bn。
  2. 每个选民选择一个候选人,将其编号作为投票结果进行盲化,得到盲签名投票的值,记为v1, v2, ..., vn。
  3. 系统管理员将盲签名投票的初始值和盲签名投票的值发送给第一个中央机构(CA1),图中的(Scla)
  4. CA1对盲签名投票的初始值进行签名,得到盲签名,记为s1, s2, ..., sn,然后将签名结果发送给另一个中央机构(CA2),图中的(Cctf)
  5. CA2对盲签名进行盲化,得到盲化签名,记为t1, t2, ..., tn,然后将盲化签名发送给CA1。
  6. CA1对盲化签名进行解盲,得到签名后的投票结果,记为r1, r2, ..., rn,并将签名后的投票结果发送给系统管理员。
  7. 系统管理员将所有选民的盲化值和解盲后的签名结果发送给计票人进行计票。
  8. 计票人对解盲后的签名结果进行计票,得到最终的选举结果。 在这个过程中,CA1和CA2作为两个中央机构,起到了分离投票信息和投票结果的作用,保证了投票结果的机密性和完整性。选民的身份信息得到了保护,签名者无法知道选民选择的是哪个候选人,同时盲签名也保证了选民的投票结果不会被泄露。最终的计票结果也能够保证公正性和匿名性。

因为选票经过盲化,所以还是无法知道谁投了票,谁没有投,还是只知道一共多少票。

没有满足

1、任何人都不能确定别人投谁的票(可能冲 突);

2、每个人都知道谁投了票,谁没有投

 

 

5.无需投票中心的投票协议

 

 

没有满足

1、没有人能复制其他人的选票

2、每个人都知道谁投了票,谁没有投

 

 

新方向:

无需投票中心的投票协议可以使用区块链技术来实现去中心化投票系统,以下是具体实现步骤:

  1. 所有选民都可以参与到区块链网络中,每个选民拥有一个数字钱包地址。
  2. 候选人信息被记录在区块链上,选民可以通过其数字钱包地址对候选人进行投票。
  3. 每个选民可以将投票信息加密并通过区块链网络发送到区块链上,每个投票信息都被记录在一个区块中。
  4. 区块链上的节点(包括选民和矿工)都可以对投票信息进行验证,确保投票信息的正确性和合法性。
  5. 一旦一个区块中的投票信息被验证通过,该区块就会被加入到区块链上,所有选民都可以查看该区块中的投票信息,确保了透明性和公正性。
  6. 选举结果可以通过区块链上的智能合约进行计算,确保选举结果的准确性和公正性。 这个方案的优点是去除了传统投票系统中的投票中心,所有选民都可以参与到投票中来,确保了选举的公正性和透明度。同时,区块链技术可以保证投票记录的安全性和可靠性,防止投票信息被篡改和泄露。
posted @ 2023-03-16 20:31  Hndreamer  阅读(59)  评论(0编辑  收藏  举报
#百度统计#