// Everyone except player 1 creates a new keypair and sends it around to everyone else.
    DecryptionKey broadcastNewKey(Map<VerificationKey, Address> changeAddresses)
        throws TimeoutException, InterruptedException, IOException, FormatException {
      DecryptionKey dk = null;
      dk = crypto.makeDecryptionKey();

      // Broadcast the public key and store it in the set with everyone else's.
      encryptionKeys.put(vk, dk.EncryptionKey());
      changeAddresses.put(vk, change);
      Message message = messages.make().attach(dk.EncryptionKey());
      if (change != null) {
        message = message.attach(change);
      }
      mailbox.broadcast(message, phase.get());
      return dk;
    }