美文网首页
一种基于秘密分享的安全投票系统方案

一种基于秘密分享的安全投票系统方案

作者: 青漾 | 来源:发表于2022-02-26 22:17 被阅读0次

    一种基于秘密分享的安全投票方案

    Zoey zhu

    zhuxinzhou999@zju.edu.cn

    适用场景

        多个人大规模投票,对于一个问题选择出一个或多个选项,统计每个选项的得分。

    交互流程

    过程

    创建投票数据

        投票人数量;候选人数量;胜选人数量

    • 投票人数量:n
    • 候选人数量:m
    • 阈值k,log2^{n}+1 后面有用

    所需要数据实体

    1. 投票公告板实体
    2. 投票人实体
    3. 份额分配记录实体(X,Y)
    4. 份额累加记录实体

    创建投票

    输入:投票人数量;候选人数量 胜选人数量 64位验证码

    计算:k=log2^{n}+1

    投票过程

    1. 选择候选人,获得候选人列表
    2. 初始化pi=0,令pi+=log2^{(m-choose[i])*k}

    分片 exportraw()

    1. n为投票人,初始化split_vote=[],共有n-1个元素,
    2. 随机生成n-1个元素,存入split_vote;满足pi'+所有元素和=pi
    3. 用户本地保存pi'
    4. 用户分发split_vote给其他用户

    后台处理投票

    1. 接收用户ID,以及split_vote,
    2. 获取投票用户序号list,剔除掉自己
    3. 分配分片数据,记录投票者-分配的用户份额关系

    记票

    在投票完成后,本地用户开始用选票记票,就是自身的pi'

    1. 遍历数据库,统计我获得别人的分片数据,和我自己的分片数据相加,记录sumi
    2. 获得n:投票人数量,将每个人的sum相加,所有的sum,获得target
    3. 获得k,k=log2^{n}+1

    计票过程

    • for
    • 计算target & 2^{k}-1 按位与
    • target = target >>k 左移k位
    • end for

    算法流程

    相关文章

      网友评论

          本文标题:一种基于秘密分享的安全投票系统方案

          本文链接:https://www.haomeiwen.com/subject/ytrcrrtx.html