1 Introduction
1.1 Background
Secure computation protocol is a cryptographic protocol for outputting computation results while keeping the input secret. Most of secure computation protocols are intended to be implemented on computers, but there has been some research into the use of physical objects to implement secure computation. In particular, the research area in which secure computation is performed using a deck of physical cards is called card-based cryptography [3, 4, 12]. Card-based protocols for various functions have been proposed: a secure voting protocol [11, 20, 21], a three-input majority protocol [1, 2, 15, 25‐27], a Millionaires’ protocol [9, 10, 13, 14, 16, 17], a secure matching protocol [19], a secure grouping protocol [7, 8], a covert lottery protocol [22], a private set intersection protocol [5], a secure ranking protocol [23, 24], a secure sorting protocol [6], and so on. Most of these protocols use binary cards such as
and number cards such as
.


For many people who are not familiar with cryptography, the most familiar task on secure computation would be voting. Mizuki, Asiedu, and Sone [11] proposed the first card-based voting protocol. It focuses on n voters and two candidates and requires \(2\lceil \log n \rceil + 6\) binary cards. An addition protocol, which is closely related to the voting protocol, was proposed by Ruangwises and Itho [18]. It computes the sum of n input bits using \(2n+2\) binary cards.
Anzeige
Shinagawa et al. [20, 21] proposed a new card called a regular n-sided polygon card, which can hold a value \(x \in \mathbb {Z}/n\mathbb {Z}\). A face-down card holding a value x is called a commitment to x. Based on regular n-sided polygon cards, they constructed an addition protocol that takes two commitments to \(x_1, x_2 \in \mathbb {Z}/n\mathbb {Z}\) as input and outputs a commitment to \(x_1 + x_2 \pmod n\). It requires two cards and one shuffle. They also proposed a voting protocol with v voters and c candidates when \(v<n\). It requires \(c(v+2)\) regular n-sided polygon cards and \(v+1\) shuffles.
To the best of our knowledge, there are no card-based voting protocols using cards other than the binary cards and the regular polygon cards.
1.2 Our Contribution
In this paper, we propose an extended addition protocol, which takes two sequences of face-down cards representing \(x_1, x_2 \in \mathbb {Z}/mn\mathbb {Z}\) and outputs a sequence of face-down cards representing \(x_1 + x_2 \pmod {mn}\), and two voting protocols using regular n-sided polygon cards (see Table 1). Our extended addition protocol requires 2m cards and one shuffle. Our first voting protocol requires \(c(\lceil \frac{v+1}{n} \rceil + v + 1)\) cards and \(v+1\) shuffles. Note that Shinagawa et al.’s protocol has a restriction \(v < n\), our first voting protocol does not have such a restriction, i.e., we can choose the number of voters v freely. Our second voting protocol reduces the number of cards to \(\lceil \frac{v+1}{n} \rceil n + v + 1\) when \(v < n\) and \(c \le n\). Thus, there are trade-offs between the number of cards and the restrictions.
Table 1
Existing protocols and ours based on regular n-sided polygon cards
Author | # of cards | # of shuffles | Condition |
---|---|---|---|
Addition protocol over \(\mathbb {Z}_n\) | |||
2 | 1 | – | |
Addition protocol over \(\mathbb {Z}_{nm}\) | |||
Our protocol (Sect. 4.2) | 2m | 1 | – |
Voting protocol | |||
\(c(v+2)\) | \(v+1\) | \(v<n\) | |
Our protocol (Sect. 5.1) | \(c(\lceil \frac{v+1}{n} \rceil + v + 1)\) | \(v+1\) | – |
Our protocol (Sect. 5.2) | \(\lceil \frac{v+1}{n} \rceil n + v + 1\) | \(v+1\) | \(c \le n\) |
2 Basic Notation
2.1 Regular Polygon Cards
A regular n-sided polygon card proposed by Shinagawa et al. [21] is a card with the following properties:An integer a from 0 to \(n-1\), which is naturally considered as an element of \(\mathbb {Z}/n\mathbb {Z}\), can be encoded into a regular n-sided polygon card. In the following, we deal with \(n = 4\) and denote by
its front side and by
its back side. The encoding rule is as follows:
A face-down card with an integer \(a\in \mathbb {Z}/n\mathbb {Z}\) as above encoding rule is called a commitment to a and denoted by \([\![a]\!] \). Let \(\mathcal {F}_{n}:= \{0, 1, \ldots , n-1\}\) be the set of front-side cards and \(\mathcal {B}_{n} := \{[\![0]\!] , [\![1]\!] , \ldots , [\![n-1]\!] \}\) be the set of back-side cards, and \(\mathcal {C}_{n}=\mathcal {F}_{n} \bigcup \mathcal {B}_{n}\).
-
The pattern of the front side has no rotational symmetry.
-
The back side is a \(\frac{360}{n}^\circ \) rotational symmetric pattern.



Anzeige
2.2 Operations for Regular Polygon Cards
In this paper, we use a stack of cards, which is introduced by Shinagawa et al. [20, 21]. A stack of cards is defined by an ordered collection of cards. For \(\ell \) cards \(c_1, c_2, \ldots , c_{\ell } \in \mathcal {C}_{n}\), a stack s is denoted by \(s = c_1 \circ c_2 \circ \cdots \circ c_{\ell }\), where the top is \(c_1\) and the bottom is \(c_{\ell }\). Given a stack s, a player can obtain two pieces of information only: the face of the topmost card \(c_1\) and the number of cards \(\ell \) in the stack. We note that although describing our protocols without the notion of stack is possible, introducing the notion has the advantage of making it easier to understand how to implement the protocol.
Now we introduce the basic operations for regular polygon cards used in our protocols.
2.2.1 Rotation and Flipping
The basic operations for regular n-sided polygon cards are the rotation \(\textsf{rot}_{n}\) and the flipping \(\textsf{flip}_{n}\). Applying \(\textsf{rot}_{4}\) to a regular 4-sided polygon card, we have
where the addition and subtraction are done by modulo \(n = 4\). The flipping operation is to flip a card with the vertical axis. Applying \(\textsf{flip}_{4}\) to a regular 4-sided polygon card, we have
Note that rotation is a special operation on regular polygon cards. It allows computation on integers instead of binary numbers. On the other hand, flipping is a standard operation used on other decks of cards.


2.2.2 Composition and Decomposition
Given two stacks of cards \(s_i = c_{i,1} \circ \cdots \circ c_{i,\ell _i}\) for \(i \in \{1,2\}\), we can make a new stack of cards \(c_{1,1} \circ \cdots \circ c_{1,\ell _1} \circ c_{2,1} \circ \cdots \circ c_{2,\ell _2}\). This operation is called composition. We also define flip composition as an operation that takes \(s_1, s_2\) as above and outputs \(c_{1,1} \circ \cdots \circ c_{1,\ell _1} \circ \textsf{flip}_{n}(c_{2,\ell _2}) \circ \cdots \circ \textsf{flip}_{n}(c_{2,1})\). We define decomposition and flip decomposition as the inverse operation of the composition and flip composition, respectively.
For example, applying the composition to \([\![a]\!] , [\![b]\!] \), we obtain \([\![a]\!] \circ [\![b]\!] \) as follows:
Here, the face of the stack is the same as the face of the topmost card \([\![a]\!] \). Similarly, applying the flip composition to \([\![a]\!] , [\![b]\!] \), we obtain \([\![a]\!] \circ b\) as follows:
Here, the value b must be hidden from all players. The flip composition as above can be implemented as follows: First, cover the face of \([\![b]\!] \) with the cover, flip \([\![b]\!] \) with the cover and place it under \([\![a]\!] \), and then pull out the cover. The difference between \([\![a]\!] \circ [\![b]\!] \) and \([\![a]\!] \circ b\) is whether the bottom card in the stack is \([\![b]\!] \) or b. The flip decomposition to \([\![a]\!] \circ b\) is defined as the reverse operation of the above operation. Here, the value b must be hidden from all players. The flip decomposition can be similarly implemented as follows: First, insert the cover between \([\![a]\!] \) and b, take the top card \([\![a]\!] \), flip b with the cover, and then pull out the cover.


2.2.3 Pile-Shifting Shuffle
A pile-shifting shuffle is a shuffle that shifts a sequence of stacks cyclically and randomly. Given a sequence of m stacks \((s_0, s_1, \ldots , s_{m-1})\) each consisting of the same number of cards, a pile-shifting shuffle outputs \((s_r, s_{r+1}, \ldots , s_{r+m-1})\) as follows:
where \(r \in \mathbb {Z}/m\mathbb {Z}\) is chosen uniformly at random and the indices are computed by \(\bmod \,m\). The random number r must be hidden from all players, including the player performing the shuffle.

2.2.4 Pile-Scramble Shuffle
A pile-scramble shuffle is a shuffle that permutes a sequence of stacks randomly. Given a sequence of m stacks \((s_1, s_2, \ldots , s_{m})\) each consisting of the same number of cards, a pile-scramble shuffle outputs \((s_{r_1}, s_{r_2}, \ldots , s_{r_m})\) as follows:
where \((r_1, r_2, \ldots , r_m)\) is chosen uniformly at random conditioned on \(\{r_1, r_2, \ldots , r_m\} = \{1, 2, \ldots , m\}\). Here, \((r_1, r_2, \ldots , r_m)\) must be hidden from all players, including the player performing the shuffle.

2.2.5 Rotation Shuffle
A rotation shuffle is a shuffle that rotates a stack randomly. Given a stack \(s = c_1 \circ c_2 \circ \cdots \circ c_{\ell }\), a rotation shuffle outputs \(\textsf{rot}_n^r(c_1) \circ \textsf{rot}_n^r(c_2) \circ \cdots \circ \textsf{rot}_n^r(c_{\ell })\) as follows:
where \(r \in \mathbb {Z}/n\mathbb {Z}\) is chosen uniformly at random. The random number r must be hidden from all players, including the player performing the shuffle.

For example, applying a rotation shuffle to \([\![a]\!] \circ [\![b]\!] \), we obtain \([\![a + r]\!] \circ [\![b + r]\!] \). On the other hand, applying a rotation shuffle to \([\![a]\!] \circ b\), we obtain \([\![a + r]\!] \circ (b - r)\).
2.2.6 Flower Shuffle
A flower shuffle is a shuffle that performs a rotation shuffle and a pile-shifting shuffle synchronously. Given a sequence of \(n+1\) stacks \((x, s_0, s_1, \ldots , s_{n-1})\) each (other than x) consisting of the same number of cards, a flower shuffle outputs \((\textsf{rot}_n^r(x), s_r, s_{r+1}, \ldots , s_{r+n-1})\) as follows:
where \(r \in \mathbb {Z}/n\mathbb {Z}\) is chosen uniformly at random. The random number r must be hidden from all players, including the player performing the shuffle. To implement a flower shuffle, place x in the center of a roulette (or a Chinese round table) and \(s_0, s_1, s_2, s_3\) in turn around x, and then rotate the roulette.

3 Existing Protocols Using Regular Polygon Cards
3.1 Existing Addition Protocol
The addition protocol proposed by Shinagawa et al. [20, 21] is summarized as follows:We describe the protocol for \(n=4\) as follows: Based on the addition protocol, protocols for subtraction, copy, and constant-multiplication can be easily obtained.
-
Input: \([\![a]\!] ,[\![b]\!] \)
-
Output: \([\![a+b]\!] \)
-
Security: The distribution of all opened values is independent of the distribution of the input values.
-
Number of cards: 2
-
Number of shuffles: 1
(1)
Apply a flip composition to \([\![a]\!] ,[\![b]\!] \) as follows:

(2)
Apply a rotation shuffle to the stack as follows:

(3)
Apply a flip decomposition to the stack as follows:

(4)
Open the left card and obtain the opened value \(\epsilon = a+r\). Then remove the opened card and apply \(\textsf{rot}^{\epsilon }_4\) to \([\![b-r]\!] \) as follows:
This is the output \([\![a+b]\!] \) since \(b - r + \epsilon = a+b\).

3.2 Existing Voting Protocol
Suppose that there are v voters and c candidates. The i-th voter having \(a_i \in \mathbb {Z}/c\mathbb {Z}\) as input, which is encoded by a sequence of cards as follows:
where \(e_j(a_i) = 1\) if \(a_i = j\) and 0 otherwise.

The voting protocol proposed by Shinagawa et al. [20, 21] is summarized as follows:Before describing the protocol, we explain the idea behind the protocol. First, an \((v+2) \times c\) card matrix is arranged: The topmost v rows correspond to v voters’ inputs and the bottom two rows correspond to the rows for recording the result and reordering the order of the sequence. Then, a pile-shifting shuffle is applied to this matrix and then the input of each voter is added to the bottom row. Since one pile-shifting shuffle is required to add the input of each voter and one pile-shifting shuffle is required to rearrange the order of the sequence at the end, the protocol requires \(v+1\) pile-shifting shuffles in total.
-
Input: \(e(a_1), e(a_2), \ldots , e(a_v)\)
-
Output: \([\![y_0]\!] , [\![y_1]\!] , \ldots , [\![y_{c-1}]\!] \) where \(y_i\) is the number of votes for the i-th candidate, i.e., \(y_i = \sum _{j=1}^v e_i(a_j)\).
-
Security: The distribution of all opened values is independent of the distribution of the input values.
-
Condition: \(v<n\)
-
Number of cards: \(c(v+2)\)
-
Number of shuffles: \(v+1\)
The protocol for \((v, c, n) = (2, 3, 4)\) proceeds as follows:
(1)
Arrange the cards as follows:

(2)
Compose four cards in each column to make \(s_1, s'_1, s''_2\) where \(s_1=[\![e_0(a_1)]\!] \circ [\![e_0(a_2)]\!] \circ [\![1]\!] \circ [\![0]\!] \), \(s_1'=[\![e_1(a_1)]\!] \circ [\![e_1(a_2)]\!] \circ [\![0]\!] \circ [\![0]\!] \), and \(s_1''=[\![e_2(a_1)]\!] \circ [\![e_2(a_2)]\!] \circ [\![0]\!] \circ [\![0]\!] \). Apply a pile-shifting shuffle to them as follows:

(3)
Decompose these stacks of cards, open the top row, and apply \(\textsf{rot}_4\) to the bottom row in the column whose top row is
as follows:


(4)
Remove the top row as follows:

(5)
Compose three cards in each column to make \(s_2,s_2',s_2''\) and apply a pile-shifting shuffle to them as follows:

(6)
Decompose these stacks of cards, open the top row, and apply \(\textsf{rot}_4\) to the bottom row in the column whose top row is
as follows:


(7)
Remove the top row as follows:

(8)
Compose two cards in each column to make \(s_3, s_3', s_3''\) and apply a pile-shifting shuffle to them as follows:

(0)
Decompose these stacks of cards, open the top row, and rearrange the current sequence cyclically so that the column having
is the leftmost column as follows:


(10)
Output the sequence of cards in the bottom row.
4 Our Extended Addition Protocol
4.1 Cyclic Integer Encoding
In this section, we propose a cyclic integer encoding, which enables to deal with a large number of modulus. A cyclic integer encoding is parameterized by n and k, where n is the modulus and k is the number of cards.
The encoding rule for \(n = 4\) and \(k = 3\) is as follows:
By moving the leftmost card to the rightmost with adding 1, the value i is changed to \(i+1 \pmod {12}\).

A cyclic integer encoding for general case is defined as follows. For a vector of integers \(v = (a_1, a_2, \ldots , a_k) \in (\mathbb {Z}/n\mathbb {Z})^k\), the next vector of v is defined by \(\textsf{next}(v) = (a_2, \ldots , a_k, a_1 + 1)\), where the addition is done by modulo n. An (n, k) cyclic integer encoding is defined by a function \(\textsf{E}_{(n,k)}\) that maps an integer \(i \in \mathbb {Z}/nk\mathbb {Z}\) to a vector \(\textsf{next}^i(0^k)\), where \(0^k = (0,0,\ldots , 0)\) is the zero vector of length k. We omit (n, k) when it is clear from the context. Note that the inverse map \(\textsf{E}_{(n,k)}^{-1}\) can be easily computed by:A multi-card commitment is a sequence of face-down cards based on the cyclic integer encoding. As a special case of multi-card commitment when \(k = 1\), a commitment using one card is sometimes referred to as a single-card commitment. For example, when \(n = 4\) and \(k = 3\), a multi-card commitment to 7 is shown as follows:
By moving the leftmost card to the rightmost with applying a rotation, a multi-card commitment \([\![\textsf{E}(x)]\!] \) is changed to \([\![\textsf{E}(x + 1)]\!] \). We call it a next operation. For a sequence of stacks \((s_1, s_2, \ldots , s_{m})\), the next operation \(\textsf{next}\) is similarly defined as follows:
A rot-and-shift shuffle is a shuffle that takes a sequence of k stacks \(\textbf{s}\) and outputs \(\textsf{next}^r(\textbf{s})\), where \(r \in \mathbb {Z}/nk\mathbb {Z}\) is chosen uniformly at random. Here, the random number r must be hidden from all players, including the player performing the shuffle. For example, when \(n = 4, k = 3\) and \(r = 8\) is chosen, The following is an example of a rot-and-shift shuffle when \(n = 4, k = 3\), and \(r = 8\):
To implement a rot-and-shift shuffle, you can apply the next operation (which can be performed by human hands) many times until you lose track of the number of repetitions. Another implementation is to use private permutations: Each player \(P_i\) chooses \(r_i \in \mathbb {Z}/nk\mathbb {Z}\) privately and uniformly at random in his head, and applies the next operation \(r_i\) times privately. Note that while both implementations are indeed operable, there are several challenges to making them secure. In the former implementation, it seems difficult to hide the number of next operations if it is not done quickly. In the latter implementation, it seems difficult to generate uniform random numbers in the brain. Since the rot-and-shift shuffle is useful as shown in this paper, it is an interesting research question that whether the rot-and-shift shuffle has a simpler implementation.
$$\begin{aligned} \textsf{E}_{(n,k)}^{-1}(a_1, a_2, \ldots , a_k) = \sum _{i=1}^k a_i. \end{aligned}$$



4.2 Our Extended Addition Protocol
An extended addition protocol takes two multi-card commitments \([\![\textsf{E}_{(n,k)}(x)]\!] \) and \([\![\textsf{E}_{(n,k)}(y)]\!] \) as input and outputs a multi-card commitment \([\![\textsf{E}_{(n,k)}(x+y)]\!] \). For security, the protocol ensures that the distribution of all opened values is independent of the distribution of the input values. The number of cards is 2k (i.e., it uses no additional cards) and the number of shuffles is one rot-and-shift shuffle. It proceeds as follows: We prove the security of the protocol. The opened value in the protocol is only \(\epsilon = x + r\) in Step 5. Since r is chosen uniformly at random due to the effect of the rot-and-shift shuffle, the opened value \(\epsilon \) is independent of the distribution of the inputs. Thus the protocol is secure.
(1)
Place two multi-card commitments as follows:

(2)
Apply a flip composition to \([\![x_i]\!] , [\![y_{k-1-i}]\!] \) for all \(0 \le i \le k-1\) as follows:
where \(s_i = [\![x_i]\!] \circ y_{k-1-i}\). Now we have a sequence of stacks \((s_0, s_1, \ldots , s_{k-1})\).

(3)
Apply a rot-and-shift shuffle to the sequence as follows:
where \((s'_0, s'_1, \ldots , s'_{k-1}) = \textsf{next}^r(s_0, s_1, \ldots , s_{k-1})\) for a uniformly random number \(r \in \mathbb {Z}/nk\mathbb {Z}\).

(4)
Apply the inverse operation of Step 2 and obtain two multi-card commitments as follows:
Note that \([\![\textsf{E}(y)]\!] \) is changed to \([\![\textsf{E}(y-r)]\!] \) by the rot-and-shift shuffle in Step 3 due to the reverse order.

(5)
Open \([\![\textsf{E}(x+r)]\!] \) and set \(\epsilon = x+r\). Then apply the next operation \(\epsilon \) times to \([\![\textsf{E}(y-r)]\!] \) as follows:
Since \(y-r+\epsilon = x+ y\), it is the output \([\![\textsf{E}(x+y)]\!] \).

Similarly, an addition protocol computing \(a+b_1, a+b_2, \ldots , a + b_k \in \mathbb {Z}/mn\mathbb {Z}\) for \(a, b_1, b_2, \ldots , b_k \in \mathbb {Z}/mn\mathbb {Z}\) can be constructed by making \(s_i = [\![a_i]\!] \circ b_{1, k-1-i} \circ b_{2, k-1-i} \circ \cdots \circ b_{k, k-1-i}\) in Step 2, where \(a_i\) and \(b_{j,i}\) are the i-th card of \(\textsf{E}(a)\) and \(\textsf{E}(b_j)\), respectively.
Also, by setting \(b_1 = b_2 = \cdots = b_k = 0\) for this extended addition protocol, a protocol that outputs k copies of a commitment to a can be constructed.
5 Our Voting Protocols
5.1 Our Voting Protocol with No Restriction
We propose a voting protocol with no restriction on parameters. In particular, the number of voters v and candidates c are not restricted by the number of sides n. This is contrast to the existing voting protocol [20, 21], which has a restriction on \(v < n\), i.e., the number of voters is less than the number of sides.
The idea behind our proposed protocol is almost same as the existing protocol in Sect. 3.2 except that our proposed protocol uses the cyclic integer encoding. Due to the cyclic integer encoding, the number of voters v is not restricted, i.e., the restriction \(v < n\) is removed.
Given a parameter (v, c, n), the number of cards k in the cyclic integer encoding is given by \(k = \lceil \frac{v+1}{n}\rceil \). In the same as the existing protocol, the i-th voter with \(a_i \in \mathbb {Z}/c\mathbb {Z}\) submits a sequence of cards representing \(e(a_i) = (e_0(a_i), e_1(a_i), \ldots , e_{c-1}(a_i))\), where \(e_j(a_i) = 1\) if \(a_i = j\) and 0 otherwise. For security, the protocol ensures that the distribution of all opened values is independent of the distribution of the input values. The protocol proceeds as follows: The correctness of the protocol is straightforward. For the security, we can observe that the opened values in Steps 2.c and 4 are independent and uniformly random numbers due to the pile-shifting shuffles. Thus the protocol is secure. The number of cards of the protocol is \(c(v+k+1)\). The number of shuffles is \(v+1\) pile-shifting shuffles.
(1)
Arrange a \(2\times c\) matrix of cards as follows:
where the first row consists of c cards and the second row consists of c stacks each having k cards.

(2)
For each \( 1 \le i \le v\), place the i-th voter’s input on the top of the matrix as follows:

(3)
For each \( 1 \le i \le v\), perform the following:
(a)
Compose the cards in each column. Let \(s_i\) be the stack of the i-th column. Apply a pile-shifting shuffle to them as follows:

(b)
Decompose these stacks of cards and open the top row as follows:
where \(y'_0, y'_1, \ldots , y'_{c-1}\) are the current values of the voting which are hidden from all parties.

(c)
Apply the next operation to the bottom row in the column whose top row is
as follows:


(d)
Remove the top row as follows:

(4)
Compose the cards in each column. Let \(s_i\) be the stack of the i-th column. Apply a pile-shifting shuffle to them as follows:

(5)
Decompose these stacks of cards and open the top row as follows:
where \(y'_0, y'_1, \ldots , y'_{c-1}\) are the current values of the voting which are hidden from all parties.

(6)
Rearrange the current sequence cyclically so that the column having
is the leftmost column as follows:
The bottom row of the matrix is the output sequence \(([\![\textsf{E}(y_0)]\!] , [\![\textsf{E}(y_1)]\!] , \ldots , [\![\textsf{E}(y_{c-1})]\!] )\).


5.2 Our Voting Protocol for a Small Number of Candidates
We next propose a voting protocol for a small number of candidates \(c \le n\). In this case, the number of cards can be reduced to \(kn+v+1\). Before describing the protocol, we explain the idea behind the proposed protocol. The basic strategy of the protocol is similar to the protocol in Sect. 5.1, but the protocol has two major improvements. First, unlike the protocol in Sect. 5.1, each voter’s input is given as a single-card commitment. This is made possible by the assumption \(c \le n\). Second, the protocol uses a flower shuffle instead of the pile-shifting shuffle. This allows for efficient computation when using a single-card commitment.
Suppose that the i-th voter with \(a_i \in \mathbb {Z}/c\mathbb {Z}\) submits a single-card commitment \([\![a_i]\!] \). For security, the protocol ensures that the distribution of the opened values is independent from the distribution of the input values. The protocol proceeds as follows: The correctness of the protocol is straightforward. For the security, we can observe that the opened values in Steps 3.b and 5 are independent and uniformly random numbers due to the flower shuffles. Thus the protocol is secure. The number of cards of the protocol is \(nk+v+1\). The number of shuffles is \(v+1\) flower shuffles.
(1)
Arrange n copies of \([\![\textsf{E}(0)]\!] \) as follows:
We call them the result cards.

(2)
Compose \(([\![a_1]\!] , [\![a_2]\!] , \ldots , [\![a_v]\!] , [\![0]\!] )\) into a single stack as follows:
where \(s = [\![a_1]\!] \circ [\![a_2]\!] \circ \cdots \circ [\![a_v]\!] \circ [\![0]\!] \).

(3)
For each \( 1 \le i \le v\), perform the following:
(a)
Place the stack s at the left of the result cards. Then apply a flower shuffle to the sequence as follows:
where \(r_i \in \mathbb {Z}/n\mathbb {Z}\) is chosen uniformly at random. Let \(([\![\textsf{E}(y'_0)]\!] , [\![\textsf{E}(y'_1)]\!] , \ldots , [\![\textsf{E}(y'_{n-1})]\!] )\) be the sequence of the result cards right next to \(\textsf{rot}_n^{r_i}(s)\).

(b)
Decompose the stack \(\textsf{rot}_n^{r_i}(s)\) and open the top card. Let \(\epsilon _i\) be the opened value. Remove the opened card and compose the remaining \(v-i+1\) cards into a single stack in the same order. Update s to the current stack.
(c)
) Apply the next operation to \([\![\textsf{E}(y'_{\epsilon _i})]\!] \) as follows:
Now the sequence of the result cards is \(([\![\textsf{E}(y'_0)]\!] , \ldots , [\![\textsf{E}(y'_{\epsilon _i}+1)]\!] , \ldots , [\![\textsf{E}(y'_{n-1})]\!] )\).

(4)
) Place the stack s (which is now a single card) at the left of the result cards. Then apply a flower shuffle to the sequence as follows:
where \(r_{v+1} \in \mathbb {Z}/n\mathbb {Z}\) is chosen uniformly at random. Let \(([\![\textsf{E}(y'_0)]\!] , [\![\textsf{E}(y'_1)]\!] , \ldots , [\![\textsf{E}(y'_{n-1})]\!] )\) be the sequence of the result cards right next to \(\textsf{rot}_n^{r_{v+1}}(s)\).

(5)
) Open the leftmost card. Let \(\epsilon _{v+1}\) be the opened value. Shift the current sequence of the result cards cyclically to the left \(\epsilon _{v+1}\) times as follows:
The current sequence is the output sequence \(([\![\textsf{E}(y_0)]\!] , [\![\textsf{E}(y_1)]\!] , \ldots , [\![\textsf{E}(y_{c-1})]\!] )\).

We claim that the number of cards of the above protocol is less than those of the protocol in Sect. 5.1 and the existing protocol by Shinagawa et al. [20, 21]. Suppose that \(v+1\) is divided by n for simplicity. Then we can choose \(k = \frac{v+1}{n}\). In this case, the number of cards of the above protocol is \(nk+v+1 = 2(v+1)\) while that of the protocol in Sect. 5.1 is \(c(k + v + 1) = \frac{c(1 + n)}{n}(v+1)\) and that of the existing protocol by Shinagawa et al. [20, 21] is \(c(v+2)\), both of which are greater than \(2(v+1)\) for any \(c \ge 2\). Since our protocol requires a condition on \(c \le n\), our protocol is more efficient than the other protocols for any \(2 \le c \le n\).
6 Conclusion
In this paper, we propose an extended addition protocol and two voting protocols using regular n-sided polygon cards. For our extended addition protocol, we propose a new encoding called a cyclic integer encoding, which is of independent interest.
An open problem is to construct a voting protocol using regular polygon cards that is more efficient in terms of the number of cards and the number of shuffles. Another research direction is to explore new applications of cyclic integer encoding.
Acknowledgements
This work was supported by JSPS KAKENHI Grant Numbers JP21K17702 and JP23H00479, and JST CREST JPMJCR22M1.
Declaration
Conflict of Interest
The authors declare no conflict of interest associated with this manuscript.
Human or Animal Rights
This article does not contain any studies with human participants or animals performed by any of the authors.
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.