Mental Poker

신뢰 가능한 원격 포커게임

두 사람이 포커를 한다.

도박꾼이 그렇듯 자신이 할 수 있으면 최대한 상대를 속이고 싶어하기 때문에

서로 믿을 수 있는 안전한 방법으로 패를 떼고 싶다.

사전지식

🔑 Public Key
🗝 Private(Secret) Key

📝 Message
📝+🔑 = 🔒✉️ Encrypted

🔒✉️+🗝 = 🔓📝 Decrypted

📝+🗝 = 🔏✉️ Signed

🔏✉️ + 🔑 = 👤 Authenticated

 🖤 4

여기 52장의 카드가 있다.

 🖤 4

그리고 두 명의 플레이어도 있다.

 🖤 4

먼저 이 카드를 한 사람이 전부 암호화한다.

이쪽

편의상A

편의상B

  PkA(🖤4)

A의 비밀키로 해독 전엔
누구도 카드패를 알아볼 수 없다!

A

B

PkA(1), PkA(2)...., PkA(52)

🗝

완전소듕
내 비밀키

마이프레ㅅ...

  PkA(🖤4)

B가 카드 중 임의로 5개를 선택한다.

A

B

PkA(3), PkA(12), PkA(17),

PkA(23), PkA(41)

  PkA
(🖤3)

  PkA(🖤4)

B는 A의 비밀키(SkA)가
없으므로 패를 알 수 없다.

A

B

PkA(3), PkA(12), PkA(17),

PkA(23), PkA(41)

  PkA
(🖤3)

?

  PkA(🖤4)

B는 자신이 선택한 패를 A에게 준다.

A

B

PkA(3), PkA(12), PkA(17),

PkA(23), PkA(41)

  PkA
(🖤3)

  PkA(🖤4)

A는 자신의 비밀키(SkA)로
카드를 해독한다.

A

B

3, 12, 17, 23, 41

 🖤3

🗝

  PkA(🖤4)

A는 완료. 이제 B가 5장을 또 뽑는다.

A

B

3, 12, 17, 23, 41

 🖤3

PkA(8), PkA(9), PkA(12),

PkA(39), PkA(50)

  PkA
(🖤8)

  PkA(🖤4)

여전히 B는 자신이 뽑은 패를 모른다.

A

B

3, 12, 17, 23, 41

 🖤3

PkA(8), PkA(9), PkA(12),

PkA(39), PkA(50)

  PkA
(🖤8)

?

  PkA(🖤4)

하지만 이걸 A에게
그대로 주고 해독을 부탁하면?

A

B

3, 12, 17, 23, 41

 🖤3

PkA(8), PkA(9), PkA(12),

PkA(39), PkA(50)

  PkA
(🖤8)

해독점...

~_~

  PkA(🖤4)

A가 B의 패를 다 알아버린다.

A

B

3, 12, 17, 23, 41

 🖤3

8, 9, 12, 39, 50

🖤8

개꿀~

🗝

T-T

^0^

  PkA(🖤4)

그러므로 A가 알 수 없게
B의 공개키로 이중 암호화한다.

A

B

3, 12, 17, 23, 41

 🖤3

PkAPkB(8), PkAPkB(9), PkAPkB(12),

PkAPkB(39), PkAPkB(50)

  PkAB
(🖤8)

  PkA(🖤4)

이중 암호화한 카드를 전달,
A에게 해독해달라고 한다.

A

B

3, 12, 17, 23, 41

 🖤3

  PkAB
(🖤8)

해독점...

*_*

PkAPkB(8), PkAPkB(9), PkAPkB(12),

PkAPkB(39), PkAPkB(50)

  PkA(🖤4)

A는 자신의 공개키에 대해선 풀어내지만 여전히 B의 개인키를 모른다.

A

B

3, 12, 17, 23, 41

 🖤3

  PkB
(🖤8)

~ㅅ~

PkB(8), PkB(9), PkB(12),

PkB(39), PkB(50)

  '-' ;

  PkA(🖤4)

줘도 못먹을 거 B에게 돌려준다.

A

B

3, 12, 17, 23, 41

 🖤3

  PkB
(🖤8)

PkB(8), PkB(9), PkB(12),

PkB(39), PkB(50)

  PkA(🖤4)

B는 자신의 비밀키로 카드를 해독한다.

A

B

3, 12, 17, 23, 41

 🖤3

🖤8

8, 9, 12, 39, 50

🗝

구라치다 걸리면 손? <3

Thank
You

Made with Slides.com