专栏文章
密码学社课
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqlx3jb
- 此快照首次捕获于
- 2025/12/04 06:57 3 个月前
- 此快照最后确认于
- 2025/12/04 06:57 3 个月前
50分钟速通现代密码学入门
推荐阅读:
OIWIKI 数论部分,你可以阅读 Meissel–Lehmer 算法,欧拉定理,费马小定理,原根和离散对数部分。出于大家理解程度的考虑,社课删节了数学内容。(这个网站是国内的,不需要翻墙)
OIWIKI 复杂度简介,理解复杂度记号和复杂度分析方式,你就可以衡量算法的运行时间。同上,社课删节了计算机科学部分。
《数学之美》,吴军,第十七章。全书都推荐阅读。(书图书馆有,在新书推介栏)
*OIWIKI 抽象代数部分或洛谷博客群论入门,学有余力可以研究一下。这里摘录一句话:“群论是抽象代数的分支。它已经很抽象了,所以学习的时候要尽量直观理解,不然就只剩一堆符号了。本文尽量多举一些例子。”
Intro
一些约定:如果我在 ppt 上放了数学柿子式子,但是我没讲,说明它与主题不重要,我会把它放在延伸阅读里,你可以等社课结束以后自行查阅,或者询问我。我留了三道思考题,大家感兴趣的话可以任选若干个写一份简要的研究报告,视完成情况给予一些小礼品(所以一定要写班级姓名啊!),提交地址:社长微信即可,或邮箱:2260065019@QQ.com,
密码学初印象:提到密码学你们会想到什么:凯撒密码?《福尔摩斯探案集》“跳舞的小人”?,谍战片或者侦探片?现代密码学和你想的不一样!接下来:三个例子PS:如果有高二同学记忆好的话,这是上个学期某次英文讲座讲的内容,所以我这是在炒冷饭。
Coin Flip Problem
Coin Flip 问题:Alice 和 Bob 计划去售货机买卡士酸奶,他们决定以一种公平的方式选出其中一方请客,而且都想让对方买单。形式化的描述:设计一种游戏,使得双方获胜的概率均等,且双方互不信任。
直接石头剪刀布不就好了吗。
双方都认为对方会晚出。形式化的描述:双方互不信任,存在通信上的不确定性(即不能双方同时发出一条消息/同时进行决策)。
这多简单,Alice 扔硬币,Bob 猜正反即可。
Bob 认为 Alice 可以在硬币上做手脚。形式化的描述:若双方互不信任,无法制备双方信任的随机数生成器。因为你有一枚完美硬币对方也不承认。
这难不倒我们,Alice 可以从 中选一个数,写在小纸条上,Bob 猜小纸条上的数字即可。
Bob 认为 Alice 可以在小纸条上做手脚。形式化的描述:不存在可靠第三方。
于是我们对问题做一个完整的描述:
设计一种游戏,使得双方获胜的概率均等,其中不存在可靠第三方,不存在随机因素。
博弈论:策梅洛定理 Zermelo’s theorem :其表示在二人的有限游戏中,如果双方皆拥有完全的资讯,并且运气因素并不牵涉在游戏中,那先行或后行者当中必有一方有必胜/必不败的策略。简单证明:博弈树。
证明过程如下,读者自证不难,故略过。(到时候会折叠起来下面一块)
为方便计,对游戏的所有可能状态(是指游戏进行到某一步时的局面,包括下一步轮到谁)染色,如果某一状态已经判定先手胜则该状态染黑,同理先手负则该状态染白。如果某一状态是先手方行动且它的所有后继状态(即下一步的状态)都是白色,则这一状态染白。——你的回合但当你所有可能的下一步都会走到必败情形时,你已经输了。如果某一状态是先手方行动且存在它的某一个后继状态是黑色,则这一状态染黑。——你的回合且当你有一种方法能走到必胜情形时,你已经赢了。如果是后手方行动,同上。当以上染色结束后,考虑哪些未被染色的状态。如果该状态是先手方行动,根据以上染色规则,因为该状态胜负未分,必存在后继状态,且不能有一个黑色,且不能都是白色。所以它的所有后继状态中必存在一个未染色的状态。先手为了不输,故会选择从一个未染色状态转移到另一个未染色状态。对于后手同理。所以,初始状态要么染黑要么染白,若未染色,则先后手都会选择从一个未染色状态转移到另一个未染色状态,从而在未染色状态之间循环直到有限步内结束。总结一下:
- 没有平局,每个游戏局面要么是必胜态,要么是必败态;
- 一个状态是必败态,当且仅当它的所有后继状态都是必胜态;
- 一个状态是必胜态,当且仅当它的后继状态存在一个必败态。
必胜策略的核心本质是:理清必胜态和必败态,并构造必胜态与必败态之间的状态转移。
博弈论宣判了 Coin Flip 的理论无解。但是我们可以试图找出一种折中的方法。
我们注意到,引入硬币(或者小纸条)主要是利用了以下的性质:
Bob 无法在 Alice 抛硬币前(或者打开纸条前)获取关于硬币朝向(或者纸条上数字)的任何信息。
同时,如果 Bob 能承认硬币朝向(或者纸条上数字)不受 Alice 的干扰,那么上两个算法就是有效的。
形式化的,如果能找到一个东西满足以下两个性质,那么问题就大功告成了。
防篡改性:Bob 可以通过 Alice 给出的信息判断 Alice 有没要造假。低(零)信息性:Bob 几乎无法或不能通过 Alice 给出的信息判断 Alice 的决策。
隆重介绍,单向双射函数模型:
已知映射 是一个双射(人话:,即二者唯一对应)。其特点为 非常容易求得,而 则极难求得(但不是无法求得)。
如果存在这样一种单向双射 ,可以设计如下 Coin Flip 算法:
- Alice 和 Bob 约定一种单向双射 。
- Alice 在 中选择一个数 ,计算 ,并公开展示 。
- Alice 在 中选择一个数 ,Bob 猜测 是否大于 。(此时 Bob 知道 ,但他很难根据 来计算 )
- Alice 公开展示 ,如果 Bob 猜错了,他买单。(Bob 可以根据 来验证 Alice 没有偷换 )
在此,Bob 无法通过 获得任何关于 的信息(或者说计算量不可承受),此时不存在比随机猜测更好的策略。
这么好的东西要怎么找呢?当然是从数论里面找!
接下来花一点时间引入一个单向双射函数模型:
定义对整数的取模运算 的含义是将其除以 以后的余数。在集合 中,任意两个元素相加或相乘,其结果 仍然在集合中,这个叫封闭性,加法与乘法具有交换性,这样就具有非常良好的代数性质。更通俗的,让我们以 举例子。想象一个摩天轮,位置分别编号为 到 ,那么做加法,就是在摩天轮上转圈圈,加几就转动了几个位置。例如 ,可以看个动画演示一下。做乘法,就是摩天轮一直以一个速度在转,转了几分钟后,第零号车厢所在的位置。例如摩天轮以5个位置每分钟的速度顺时针旋转,则 号位置六分钟以后所在的位置就是 ,,这也有个动画。为了方便讨论,如果式子需要对 取模,我就会说是模 意义下的。如果恰当选取一个极大的质数 p,并选取 p 一个原根 g(你不需要知道什么是原根)。那么 是一个单向双射函数,证明从略,见延伸阅读。已知 f(x) 和 g 求解 x 叫“离散对数问题”,与已知g,x求f(x)计算量相差几个数量级。如果你听不懂也没关系,但你需要理解的:一种从 “1到p-1” 到 “1到p-1”的映射方法,并且正着算容易反着算难。
有同学想到了什么吗。如果有同学对高考比较关注的话,就会知道这是去年九省联考的压轴题,其中第三问这货我们待会还会见到他。回到原问题,我们可以设计如下算法:
- Alice 和 Bob 约定一个大素数 ,原根 。
- Alice 在 中选择一个数 ,计算 ,并公开展示 。
- Alice 在 中选择一个数 ,Bob 猜测 是否大于 。(此时 Bob 知道 ,但他很难根据 来计算 )
- Alice 公开展示 ,如果 Bob 猜错了,他买单。(Bob 可以根据 来验证 Alice 没有偷换 )
Encrypted Communication Problem
互动环节从略。
自习课,Bob 想向女神 Alice 传递一个自然数 520,但是二人相距若干个座位,只能通过传纸条的方式传数字,这样数字有可能被其他人看到,所以 Bob 向你求助如何设计一种方法使得传递的消息只可能让 Alice 知道。
注意 Alice 和 Bob 不能走到教室外面说悄悄话。
形式化的,
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...