私は数十人のメンバーからなるグループに属しています。私は急ごしらえのウェブ投票システムを書きました、そして私はそれに「セキュリティ」のいくつかの要素を追加したいところにいます。私は可能な限り骨の折れるものになろうとしています。私が行ったことは、投票するときにユーザーが秘密の文字列(GUIDなど)を入力する必要があるようにすることです。これは、投票者ごとにデータベースに保存されています。
シークレットをユーザーに配布するために私が考えた最も安全な手段は、データベースにシークレット文字列の束を作成し、それらを印刷して会議に持ち込み、人々に帽子から秘密を引き出すことでした。そのようにして、私は2つの主要な利点を得ると信じています:(1)投票システムの作成者として、私はどの個人が何に投票したかを特定できません(そのことについては他の誰も、秘密の所有者だけです)有効なシークレットが事前にわかっているため、(2)「誰でも」行って投票することはできません。
上で概説した主な利点を損なうことなく、物理的に存在する帽子からの描画プロセスを仮想的にエミュレートする適切な方法はありますか?たぶんそれはできず、ある時点で信頼がなければならないか、誰かが秘密を「描く」ために物理的な存在を主張しなければなりません(私は個人的な秘密を与えられた個人の記録を保持しています)。
また、誰かが秘密を失ったと主張した場合、どうしたらよいかわかりません。なぜなら、彼らが不正直であり、私が単に彼らに新しい秘密を描かせた場合、彼らは事実上2票を投じることになるからです。「失われた」秘密が何であったかについての痕跡がなければ、私はそこに入って、それに関連する投票があったとしてもそれを削除することはできません。
私がいるところは、基本的に、投票が行われるたびに新しい秘密を人々に描いてもらい、物理的な存在を通じて秘密を配布するのが最善の選択肢だと思います。上で概説したのと同じ利点を達成するための、私がまだ気付いていない、よりエレガントで自動化された手段はありますか?