什么是CINTA?
本书面向计算机专业的本科低年级学生,提供一本简单浅显的数论、代数的计算性导论。本书内容的裁剪与组合别出心裁,内容陈述具有启发性、清晰性与简洁性的特点,并且书中倡导的学习模式等都颇具特色,希望这些特色能成为大家认可的优点。而缺点也非常明显,就是从知识的广度与深度上看都尚欠缺。所以,本书定位为计算机专业数学入门之入门,成为读者攻读其他经典著作的垫脚石。
本书书名的“具体”二字是为了向著名的《具体数学》致敬,同时也向数学的“抽象性”发起挑战,希望本书不要成为另一本抽象代数,而是具体代数。本书的英文名拟定为:A Concrete Introduction to Number Theory and Algebra,因其大写首写字母而简称为CINTA。希望大家可以享受阅读数学书的乐趣。
该书由计算机学院教师王立斌编写,是免费共享教材。网址。本书还不断更新,希望大家关注。
CINTA的主要内容
全书分为十七章(约150页),大致分为六部分,数论与抽象代数交错展开。
章节安排
1、第一部分:基础数论(第一到第五章)
2、第二部分:基础群论(第六到第九章)
3、第三部分:数论(第十到第十一章)
4、第四部分:环与域(第十二到第十三章)
5、第五部分:椭圆曲线(第十四章)
6、第六部分:群算法(第十五、十六章)
主要内容
1、第一部分:基础数论
二进制、整数的加法与乘法、除法定理、良序原则、模运算、GCD、Bezout定理、EGCD、乘法逆元、消去律、费尔马小定理、欧拉定理、欧拉函数、米勒拉宾算法等。
2、第二部分:基础群论
群与子群、循环群、拉格朗日定理、商群、同构与同态、第一同构定理等。特别关注两个群:Z_p^* Z_n^* 。
3、第三部分:数论
中国剩余定理、二次剩余、二次互反律。
4、第四部分:环与域
环、整环、有限域GF(2n)等
5、第五部分:椭圆曲线
椭圆曲线理论基础,椭圆曲线的离散对数问题。
6、第六部分:群算法
大整数分解、离散对数求解。
阅读建议
1、本书面向计算机专业的本科低年级学生,但是同时也建议没有相关知识的工程师、教师或相关从业人员阅读。
2、请按顺序阅读。
3、本书的阅读需遵循的最大诫命就是:必须动手,必须做题,必须编程。那么,阅读本书最好有一定的编程基础,强烈建议使用课本推荐的软件SageMath。
4、本书可视为信息安全、网络空间安全的数学基础。虽然在书中作者没有提及任何密码学的内容,但是作者的工作背景决定了本书的内容选择。
如何制定阅读计划
优先次序
前三部分有较高的优先级,要确保掌握前三部分内容,才攻击后三部分。而前三部分也占了整本书大部分的篇幅。
关于阅读计划的建议
制定阅读计划的时候,可根据自己的实际情况先安排前三部分的阅读计划,这样容易方便控制。甚至,可以先缩小范围,先制定第一部分的学习计划,尽量做到不要盲目,而是切实落实计划。
已有授课经验
以往授课经验告诉我,一般来说,讲授完第五章需要10个学时左右,包括几个学时的习题时间。那么,具体到个人的阅读与做题,相信需要比这个学时更多一点,或者基本相当。假定做一个15学时的计划,一周如果可以安排5个学时,那么看完第一部分需要三周时间。这也大概是我的一个期望值。但是,我不确定。欢迎大家反馈。
总的来说,这门课在本科授课学时是32,但是完全没办法讲解完整本书,最后两部分基本不涉及,也可能会跳过部分章节,比如,米勒拉宾和二次互反等。这是授课过程中的一些琐碎记录,供大家参考。
CINTA背后的密码算法
CINTA这本书蕴含的密码就是密码算法,包括,但应该不局限于:
- 公钥密码RSA
- Diffie-Hellman密钥交换
- 椭圆曲线密码学
- 分组加密算法AES
这些算法在书中一个字都没有提及,但是,内容却与它们密切相关,有兴趣的同学可以关注。