260 likes | 392 Views
密码应用 —— 软件篇. 武汉大学 信息安全 硕士 崔竞松. 本课程教学内容. 了解密码与软件 使用 C 语言开发密码程序 Symmetrical Cryptography Public Key Cryptography 算法优化技巧. 考核方式. 总分 课堂实践( 30` ) 期末报告( 40` ) 到课情况( 10` ) 综合评价( 20` ). 要点. 算法的效率 时间复杂度 空间复杂度 软件的质量 可读性 可维护性 项目管理. 算法效率. 时间复杂度 评价体系. Mission 1.1. 构建时间复杂度评价体系
E N D
密码应用——软件篇 武汉大学 信息安全 硕士 崔竞松
本课程教学内容 • 了解密码与软件 • 使用C语言开发密码程序 • Symmetrical Cryptography • Public Key Cryptography • 算法优化技巧
考核方式 • 总分 • 课堂实践(30`) • 期末报告(40`) • 到课情况(10`) • 综合评价(20`)
要点 • 算法的效率 • 时间复杂度 • 空间复杂度 • 软件的质量 • 可读性 • 可维护性 • 项目管理
算法效率 • 时间复杂度 • 评价体系
Mission 1.1 • 构建时间复杂度评价体系 • 请在VC环境下,使用C语言,编写一个console程序,满足要求: • 能够对某段程序的运行时间进行较精确的测量 • 利用一段固定的程序测量当前系统的计算速度指标 • 仅使用C语言标准库 • 难度系数:10
Mission 1.2 • 产生随机数 • 请编程序 • 将内存中连续的1024个bit填充成为随机数 • 要求以32位整数为最小处理单位 • 要求随机数不会短周期重复 • 难度系数:5
Mission 1.3 • 输出 • 请编程序 • 将内存中连续存放的1024个bit组成的数据,以16进制大整数的形式,显示在屏幕上 • 难度系数:5
Mission 1.4 • 输入 • 请编程序 • 将以16进制形式表示的一个大整数,输入到内存中连续存放的1024个bit • 调用Mission 1.3的程序验证上述功能 • 难度系数:10
Mission 1.5 • 验证 • 请编程序 • 调用已有程序生成1024b随机数,并显示出来 • 将内存中连续存放的1024个bit,按照1个bit为单位,将1024个bit全部倒置 • 调用已有程序将结果显示出来 • 难度系数:20
Mission 1.6 • 验证 • 请编程序 • 对Mission 1.5的程序测试速度(不含随机数生成、输入输出) • 要求测量精确、稳定 • 难度系数:10
Mission 1.7 • 优化 • 改进Mission 1.5的代码 • 使得速度更快 • 难度系数:5(*2)
算法效率 • 时间复杂度 • 评价体系 • RSA基本功能
RSA基本功能 • 基本运算模块 • 高级运算模块 • 基本密码功能 • 高级密码功能 • 密码体制与应用
RSA基本功能 • 基本运算模块 • +,+% • -,-% • *,*%
Mission 2.1 • 基本运算 • 编程实现(a+b)%c • a,b,c∈ℤ* • 0<|c|≤1024b • a,b <c • 难度系数:10
Mission 2.2 • 优化 • 改进Mission 2.1 的代码 • 使得速度更快 • 难度系数:5(*2)
Mission 2.3 • 基本运算 • 编程实现(a-b)%c • a,b,c∈ℤ* • 0<|c|≤1024b • a,b <c • 难度系数:10
Mission 2.4 • 基本运算 • 编程实现a%c • a,c∈ℤ* • 0<|c|≤1024b • 0≤ a <c2 • 难度系数:15
Mission 2.5 • 优化 • 改进Mission 2.4 的代码 • 使得速度更快 • 难度系数:5(*2)
Mission 2.6 • 基本运算 • 编程实现(a*b)%c • a,b,c∈ℤ* • 0<|c|≤1024b • a,b <c • 难度系数:15
Mission 2.7 • 优化 • 改进Mission 2.6 的代码 • 使得速度更快 • 难度系数:5(*2)
RSA • 高级运算模块 • GCD • Inverse • ^%
Mission 3.1 • 高级运算 • 编程实现gcd(x,y) • x,y∈ℤ+ • |x|, |y| ≤1024b • 难度系数:15
Mission 3.2 • 高级运算 • 编程实现(a-1)%c • a,c∈ℤ+ • |c|≤1024b • a <c • 难度系数:15
Mission 3.3 • 高级运算 • 编程实现(ab)%c • a,b,c∈ℤ+ • |b|, |c| ≤1024b • a <c • 难度系数:20