三人扑克是两人扑克的升级版,但实现的思想是一致的。这里的加解密均为不对称。
性质:发牌方进行初次加密,收牌方进行二次加密并回传,发牌方解密回传后,收牌方得到手牌。
参与者:Alice、Bob、Carol
实现过程:
(1):Alice产生52个消息,分别对它们进行加密,得到M(A1)、M(A2)、...M(A52)。
(2):Alice首先将M1、M2、...M52发送给Bob,Bob随机挑选五张牌进行加密,得到M(B(A1))、M(B(A2)、...、M(B(A5)),
回传给Alice,由Alice解密为M(B1)、M(B2)、...、M(B5)后再次发送给Bob,Bob解密得到手牌。
(3):Bob将剩下的47个消息发送给Carol。
(4):Carol从47个消息里选择五个消息进行加密,得到M(C(A1))、M(C(A2)、...、M(C(A5))。Carol将这五个消息回传给Alice,
Alice进行解密后得到M(C1)、M(C2)、...、M(C5),将它们回传给Carol后,Carol解密得到手牌。
(5):Carol从剩下的42个消息里随机选五个,发送给Alice。Alice解密它们得到她自己的手牌。
(6):游戏结束后,未出完牌的玩家出示剩下的手牌,三方出示各自的密钥对。
如何在三人扑克里作弊:
(1):Carol与Alice串通,Carol直接将Bob传来的47张手牌发送给Alice,Alice与Carol得到了Bob的手牌
(2): Bob与Alice串通,Bob选完牌后将自己的手牌发送给Alice。同时Carol只能从余下的47张里选取手牌,并且Carol会从她选完后
余下的42张里选五张给Alice。这时,Alice只需要排除掉Bob与她自己的手牌,那么剩下的五个消息即为Carol的手牌。