假设您有一些文本,并且希望将其发送给您的朋友,但是您不希望其他任何人阅读。这可能意味着您想对其加密,以便只有您和您的朋友才能阅读它。但是,有一个问题:您和您的朋友忘记了加密方法的约定,因此,如果您向他们发送消息,他们将无法对其解密!
考虑了一段时间后,您决定只向您的朋友发送代码,以将消息和消息一起加密。您的朋友很聪明,因此他们很可能可以通过研究加密方法来弄清楚如何解密邮件。
当然,由于其他人可能正在阅读该消息,因此您希望选择一种加密方案,以使其尽可能难以破解(找出解密方案)。
警察的任务
在这个挑战中,警察将扮演作家的角色:您将设计一种将字符串转换为字符串的加密方案。但是,此加密方案必须是双射的,这意味着没有两个字符串必须映射到另一个字符串,并且每个字符串都可以通过输入映射到。它只需要一个输入即要编码的字符串。
然后,您将发布一些执行加密的代码,并使用您的代码详细说明的方案加密一条消息。
由于您是按字节付费发送消息,因此分数将是代码的长度加上密文的长度。如果您的答案被破解,您将获得无穷大。
一个星期后,您可以显示文字并将答案标记为“ 安全”。安全的答案是那些无法破解的答案。
强盗任务
强盗可以扮演作家的朋友,也可以扮演恶意的中间人(没有实质性的区别,但是您可以扮演角色,就像这样做更有趣)。他们将采用加密方案和密文,并尝试找出加密的消息。一旦他们找出了加密的消息,便会将其发布在评论中。(这个问题不会有单独的强盗线程。)
赢家将是裂缝最多的强盗。
这是一个破解解决方案的示例: