Skip to content

Latest commit

 

History

History
170 lines (152 loc) · 8.23 KB

File metadata and controls

170 lines (152 loc) · 8.23 KB

Version 1

前提

  • 学生投票 (各投票につき賛成/反対/白票) と正副自治会長選 (正副それぞれについて投票を行い,それぞれ1名以上の候補者のなかから1名を信任する) をサポートする.
  • オフライン時は投票券の投票する部分を千切り回収する.選管がQRコードを読み取り,投票を記録するボタンを押す.この際に誰の票であるかなどは知る必要が無い.
  • オンライン時は投票券の投票する部分のQRコードを有権者が読み取り,投票を記録するボタンを押す.
  • 投票を記録するボタンには何の投票であるかだけが表示され,投票内容は表示されない.
  • 1セットの投票券のうち,最初に投票されたものだけが有効であり,1セットからどれかの投票を記録するとそれ以降の同じ投票券の使用は受け付けない.
  • このスキームはボルダルールをサポートする.ボルダルール採用時には,各投票につき((選択肢数)-1)セットの投票券を使う.それぞれ,1位に投票する選択肢,2位に投票する選択肢,……である.3名の候補者が居る選挙の場合,各有権者が1位と2位に支持する候補をそれぞれ投票する.ここで,ボルダルールの数理的特性が無効にならないためにいくつかの条件を満さねばならない:
    • ある投票のいづれかの順位に白票(またはその他の無効票)が投ぜられた場合,その有権者のその投票は1セットすべて無効になる.これはつまり有権者はすべての順位を指定しないといけないということである.e.g. つまり,3名の立候補者が居る選挙の場合,有権者は1位として投票する候補,2位として投票する候補をそれぞれ投票せねばならず,どれかが無効だとその投票が無効になる.
    • ある投票の特定の順位に複数の選択肢を同時に投票することは,同じ投票券の重複使用にあたるため防がれる.e.g. 1位の候補として複数を挙げることはできない.
    • ある投票の複数の異なる順位で同じ選択肢が複数回選ばれた場合,その投票は1セットすべて無効になる.e.g. 1位と2位で同じ候補に投票することはできない.
    • 3名の候補が居る選挙の場合,1位に投票すると2点,2位に投票すると1点,選ばれていない候補が3位なので0点が与えられる.他の人数の場合も同様にして得点が決まる.
    • ボルダルールは3つ以上の選択肢がある場合に用いられることができる.2つの場合は通常の投票と変わらない.1つの場合は選挙は信任投票になり,これも信任/不信任の2つなので通常の投票である.ボルダルールは複数の当選者を選ぶ場合には欠点があるが,ここでは最多得点の選択肢1つが選ばれることのみを考えるものとする.(正副自治会長選も学生投票もそうであるため)

使用するもの

  • ED25519 電子署名.1公開鍵対は1つの投票の1有権者でのみ用いられ,再利用されない.ボルダルールの1セットの投票では各有権者でそれぞれ同じものが使われる.1回の選挙で複数の投票を行う場合,同じ有権者でもそれぞれの投票ごとに別の公開鍵が用いられる.
  • それぞれにつき選択肢数+1(白票)個の QRコードが書かれた投票券.各有権者に1の投票につき1つ配られる.
  • 投票記録用 Web サイト.ここのアドレスが QRコード生成に使われる.

署名

これが票である.

+------------------------+
| public key (32 Bytes)  |
+------------------------+
| signature (32 Bytes)   |
+------------------------+
| option UUID (16 Bytes) |
+------------------------+
  • 暗号論的乱数により生成された UUID version 4 を用いる.
  • 白票の option UUID は,NULL UUID である.

投票券

例:

======================
 自治会長
 1位に投票する候補
 A候補
 +----+
 | QR | □ 投票済みチェック
 +----+
-----------------------
 自治会長
 1位に投票する候補
 B候補
 +----+
 | QR | □ 投票済みチェック
 +----+
-----------------------
 自治会長
 1位に投票する候補
 C候補
 +----+
 | QR | □ 投票済みチェック
 +----+
======================
 自治会長
 2位に投票する候補
 A候補
 +----+
 | QR | □ 投票済みチェック
 +----+
-----------------------
 自治会長
 2位に投票する候補
 B候補
 +----+
 | QR | □ 投票済みチェック
 +----+
-----------------------
 自治会長
 2位に投票する候補
 C候補
 +----+
 | QR | □ 投票済みチェック
 +----+
=======================
 自治会長
 白票
 +----+
 | QR | □ 投票済みチェック
 +----+
=======================

======================
 副自治会長
 1位に投票する候補
 X候補
 +----+
 | QR | □ 投票済みチェック
 +----+
-----------------------
 副自治会長
 1位に投票する候補
 Y候補
 +----+
 | QR | □ 投票済みチェック
 +----+
-----------------------
 副自治会長
 1位に投票する候補
 Z候補
 +----+
 | QR | □ 投票済みチェック
 +----+
======================
 副自治会長
 2位に投票する候補
 X候補
 +----+
 | QR | □ 投票済みチェック
 +----+
-----------------------
 副自治会長
 2位に投票する候補
 Y候補
 +----+
 | QR | □ 投票済みチェック
 +----+
-----------------------
 副自治会長
 2位に投票する候補
 Z候補
 +----+
 | QR | □ 投票済みチェック
 +----+
=======================
 副自治会長
 白票
 +----+
 | QR | □ 投票済みチェック
 +----+
=======================

実際には,誰に入れたか回収時に分かってしまわぬ様に,QRコード部分のみを千切って回収する様にするかもしれない.

  • QRコードには,<投票記録サイトのアドレス>#<Base-64-encoded-signature> が含まれる.

方法

  1. 選管は,各投票につき各有権者につき1対の公開鍵対を生成し,公開鍵の方をその選挙の鍵リストに入れる.
  2. 選管が投票券を発行すると,投票券にはその有権者の全ての投票選択肢について予め電子署名が作成され,QRコードとして印字される.投票券生成後,秘密鍵は保持されず自動的に破棄される.(選管,システム上,投票券上を含めどこにも秘密鍵は保持されず失われるため,投票をこの後偽造することは不可能である.) すべての投票券を配布したのち,選管は 投票を開始する ボタンを押す.
  3. 有権者は投票券を受け取り,投票を行う.(ここで行われるものが投票であるとして規則に定義する.)
    • オフライン投票の場合,各投票について投票する選択肢のQRコードを切り取り,自治委員が回収する.
    • オンライン投票の場合,投票する選択肢のQRコードを読み込み,投票を記録するボタンを押す.
  4. オフライン投票で自治委員が回収したQRコードを選管が読み込み,それぞれ 投票を記録するボタンを押す.この際にエラーが出ても適切に無効票として処理されるので無視する.
  5. 選管は,鍵リストおよび投票選択肢のデータベースを使って,選挙を締め切る および 記録された投票を集計する ボタンを押す.これによって選挙が締め切られ,集計される.
  6. 各投票につき最も選ばれた選択肢および各選択肢の得点が表示される.

考慮事項

  • データおよびセッション等をどうやって保持するか.
  • 投票システムの認証およびアクセス制御をどうするか.
  • 投票券を発行し配布するのを簡素化するシステムの構築.

Copyright

Copyright © 2021 東京大学教養学部学生自治会.

Licensed under the Apache 2.0 license.