Pu4koff |
---|
Закрытые ключи пересылаются между игроками, на сервер не отправляются. Используется для обмена данными между игроками, чтобы сервер ничего не перехватил. |
А зачем обмениваться закрытыми ключами? Может открытыми?
Pu4koff |
---|
т.е. каждый игрок отправит на сервер табличку, в которой строка - это карта, а столбец - шифровка карты ключом соответствующего игрока. Сервер перепроверяет, что все игроки прислали одинаковые таблички и никто ничего не подменил. |
А как вычислить, что каждый игрок взял себе по карте, которую ОН ЗНАЕТ, но никто больше не знает, и при этом неизвестно, какие карты какой игрок взял, да и вообще, какие конкретно карты были извлечены, чтобы можно было делать предположения?
Известно должно быть только карты, выложенные на стол.
Тут всё бы ничего, если бы из колоды можно было брать любые карты. Но брать можно только из тех, которые другой игрок УЖЕ не взял. Как это вычислить и при этом не раскрыть информацию?
Pu4koff |
---|
Соответственно закрытые карты расшифровываются игроком в два этапа: сначала постоянным ключом, а потом - временным. Открытые карты отправляются как есть и игроки их расшифровывают только своими временными ключами. |
На самом деле шифровать карту не нужно, нужно шифровать номер карты в перетасованной колоде. Но номер карты, даже шифрованный, позволяет легко вычислить соответствие. А если этого не делать, то у игроков может оказаться по одной и той же карте.
Проблема именно здесь. Непонятно как решать.