def generate_cipher_proposal(supported: dict) -> str:
    """Generate a cipher proposal message

    :param supported: cryptosystems supported by the client
    :return: proposal as a string
    """

    out = "ProposedCiphers:"
    out += ','.join([cipher + ':[' + ','.join([str(x) for x in bits]) + ']'
                     for cipher, bits in supported.items()])

    return out