科普 410 字 3 图

仿射密码的应用——记一次失败的解题经历

前几天,在群里看到一道题:


第一想法就是构造双射,但当时没细想,忙别的事去了。今晚申强老师来问我,有没有看他的做法(只有8个字“了解一下仿射密码”)。


这里简单介绍一下仿射密码的概念,其实本质就是一种双射,和我的第一想法是一样的。


顺着这个思路我开始思考以下几个问题:


1.怎样的双射f:x→ax+b,能将{4,5,6}映射到{1,4,7}?


2.这样的双射如何保证将19的倍数仍映射到19的倍数?


第一个问题比较好解决,f(x)=3x+3就可以(这个系数3是容易得到的),但构造出的双射无法满足第二个要求,思路陷入了困境。


大强提示我可以构造从{0,1,2,3,7,8,9}到{0,2,3,5,6,8,9}的双射(本质似乎是一样的,原因是此时我还没意识到真正的问题所在)。


再次尝试未果,大强又给出了提示:映射就是f(x)=3x,并问我应该模什么?


我立马顿悟了。要满足第二个要求,显然不能模10,而应该模19,并且构造的双射也应该是f(x)=ax的形式。


所以,是什么让我(以及没反应过来的读者们)在一开始就默认应该模10呢?


最后,放一道类似的能用仿射密码做的竞赛题(2021年百年老校数学竞赛第6题)。

留言

解法、疑问、勘误都可以说。公式用 LaTeX:行内 $…$,整行 $$…$$。

留言区还没开。想聊这道题,可以点上面的「在公众号查看原文」,到公众号那边留言。