斯坦福大学的在线密码学课程

密码学是保护计算机系统信息不可或缺的工具。在本课程中,您将了解密码系统的内部工作原理,以及如何在实际应用中正确使用它们。课程首先将详细讨论当强大的对手窃听和篡改流量时,拥有共享密钥的双方如何进行安全通信。我们将研究许多已部署的协议,并分析现有系统中的错误。课程的后半部分将讨论让双方生成共享秘钥的公钥技术。在整个课程中,学员将接触到该领域许多令人兴奋的公开问题,并参与有趣的(可选的)编程项目。在第二门课程(密码 II)中,我们将介绍更高级的密码任务,如零知识、隐私机制和其他形式的加密。

学习密码学课程之前,先学初等数论,线性代数,一点点抽象代数。

课程链接:https://www.coursera.org/learn/crypto

图片

蔡少伟老师【中国科学院软件研究所 研究员 博导】推荐:

斯坦福的密码学课程[good]  btw,最近山东大学的王美琴老师主编的《密码分析学》出版了,很赞,方法梳理得很系统。推荐一下!

密码分析学:密码分析学/新一代信息技术网络空间安全高等教育系列教材

此课程中共有 7 个单元

第一单元 课程概述和流密码:

本周的主题是概述密码学以及第一个密码示例。你将了解伪随机性以及如何将其用于加密。我们还将了解安全加密的一些基本定义。

课程概览•10 分钟

什么是密码学?•15 分钟

密码学的历史•18 分钟

离散概率(速成班)•18 分钟

离散概率(速成班,续)•13 分钟

信息理论安全和一次性密码键盘•18 分钟

流密码和伪随机发生器•19 分钟

对流密码和一次性密码匙的攻击•23 分钟

真实世界的流密码•19 分钟

PRG 安全定义•24 分钟

语义安全•15 分钟

流密码在语义上是安全的 [可选]•10 分钟

第二单元 分块密码:

第二周我们将介绍一种名为 "块密码 "的新基元,它能让我们构建更强大的加密形式。我们将学习几种经典的块密码构造(AES 和 3DES ),并了解如何使用它们进行加密。块密码是密码学中的 "工作马",应用广泛。下周,我们将了解如何使用块密码提供数据的完整性。本周的可选编程作业要求学生使用 AES 构建一个加密/解密系统。

什么是块密码?•16 分钟

数据加密标准•21 分钟

穷举搜索攻击•19 分钟

对块密码的更多攻击•16 分钟

AES Block Cipher•13 分钟

来自 PRG 的分组密码•11 分钟

审查:PRP 和 PRF•11 分钟

操作模式:单次按键•7 分钟

多次密钥的安全性(CPA 安全性)•22 分钟

运行模式:多时间键(CBC)•16 分钟

操作模式:多时间键 (CTR)•9 分钟

第三单元 信息完整性:

第三周本周的主题是数据完整性。我们将讨论一些用于确保数据完整性的 MAC 系统经典结构。现在我们只讨论如何防止非机密数据被修改。下周我们将再次讨论加密,并展示如何同时提供保密性和完整性。本周的编程项目展示了如何验证大型视频文件。即使你不做这个项目,也请阅读项目说明--它教授了一个重要的概念,叫做哈希链。

信息验证码•15 分钟

基于 PRF 的 MAC•9 分钟

巴塞尔公约咨询委员会(CBC-MAC)和北地中海咨询委员会(NMAC•19 分钟

MAC 填充•8 分钟

PMAC 和卡特-韦格曼 MAC•15 分钟

导言•10 分钟

通用生日攻势•14 分钟

梅克尔-达姆加德范式•11 分钟

构建压缩函数•8 分钟

HMAC•7 分钟

对 MAC 验证的定时攻击•8 分钟

第四单元 认证加密:

第 4 周本周的主题是验证加密:同时确保机密性和完整性的加密方法。我们还将讨论一些小问题,如如何搜索加密数据。这是我们学习对称加密的最后一周。下周我们将开始学习密钥管理和公钥密码学。像往常一样,我们还有一个额外学分编程项目。本周的项目涉及对玩具网站进行选择密文攻击的网络实验。

对 CPA Secure 加密的主动攻击•12 分钟

定义•5 分钟

自选密文攻击•12 分钟

来自密码和 MAC 的构造•20 分钟

案例研究 TLS 1.2•17 分钟

CBC 填充攻击•14 分钟

攻击非原子解密•9 分钟

关键推导•13 分钟

确定性加密•14 分钟

确定性加密:SIV 和宽 PRP•20 分钟

可调整加密•14 分钟

格式保存加密•12 分钟

第五单元 基本密钥交换:

第五周 本周的主题是基本密钥交换:如何在双方之间设置密钥。目前,我们只考虑防止窃听的协议。这个问题激发了公钥密码学的主要概念,但在我们建立公钥系统之前,我们需要绕个弯,先了解一下计算数论的一些基本概念。我们将从追溯到古代(欧几里得)的算法开始,一直讲到费马、欧拉和勒让德。我们还将顺便提及 20 世纪数学中一些有用的概念。下周,我们将充分利用本周所学,构建几个公钥加密系统。

可信赖的第三方•11 分钟

梅克尔谜题•11 分钟

迪菲-赫尔曼协议•19 分钟

公钥加密•10 分钟

符号•14 分钟

费马和欧拉•18 分钟

模块化 e'th Roots•17 分钟

算术算法•12 分钟

棘手的问题•18 分钟

第六单元 公钥加密:

第六周本周的主题是公开密钥加密:如何使用公开密钥加密和使用秘密密钥解密。公钥加密用于加密文件系统、加密信息系统和许多其他任务的密钥管理。视频涵盖两个系列的公钥加密系统:一个基于陷阱门函数(特别是 RSA),另一个基于 Diffie-Hellman 协议。我们构建的系统具有防篡改的安全性,也称为所选密文安全性(CCA 安全性)。在过去十年中,关于 CCA 安全性的研究层出不穷,由于时间有限,我们只能总结过去几年的主要成果。讲座还为有兴趣进一步了解 CCA 安全公钥系统的人提供了进一步阅读的建议。本周的问题集涉及的数学知识比往常多一些,但应该能加深你对公钥加密的理解。请不要羞于在论坛上发表问题。这是密码 I 课程的最后一周。我希望大家都能学到很多东西,并喜欢这门课程。密码是一个美丽的话题,有很多未决问题和进一步研究的空间。我期待着在 Crypto II 中与大家见面,我们将在那里讨论更多的核心主题和一些更高级的主题。

定义和安全•15 分钟

建筑•10 分钟

RSA 陷阱门排列组合•17 分钟

PKCS 1•21 分钟

RSA 是单向功能吗?•16 分钟

RSA 实践•13 分钟

ElGamal 公钥系统•19 分钟

ElGamal Security•13 分钟

安全性更高的 ElGamal 变体•10 分钟

一个统一的主题•11 分钟

暂别•5 分钟

第七单元 期末考试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/8963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SAP sq01,sq02,sq03创建query报表

步骤:1,SQ03创建用户组(User Group) 2,SQ02创建信息集(InfoSet) 3,SQ03分配用户和InfoSet 4,SQ01创建查询 5,SE93给Query分配Tcode 1,SQ03创建用…

ifconfig命令找不到 command not found

问题 今天解决虚拟机的网络问题后,使用ifconfig发现报错命令未找到 解决方案 输入yum install ifconfi的程序安装包 yum install ifconfig 如果显示没有可用软件包 ifconfig,错误:。 就输入yum search ifconfig匹配安装包程序 yum searc…

2024好用的4款3D雕刻软件,快来拿走

3D 雕刻是一种让角色、怪物或任何有机形状栩栩如生的方法。您可以将其视为由粘土制成的真实模型,并可以根据您的意愿推、拉、平滑、抓住或捏它以创建其最终形状。3d 雕刻有哪些软件好用?3d 雕刻软件对电脑要求高吗?电脑带不动3d软件怎么办&am…

【隧道篇 / WAN优化】(7.4) ❀ 03. WAN优化的原理 ❀ FortiGate 防火墙

【简介】相信对WAN优化感兴趣的人都会有疑问,WAN优化真的有作用吗?如果真的有作用,那是根据什么原理呢?让我们来更深入的了解一下。 客户端和服务器端 其实很多人在一开始看到WAN优化这个词,就自然的以为上网速度太慢&…

How Linux Works I - How Linux Start Up

目录 Linux如何启动? 启动信息 内核启动初始化与启动选项 写在前面:上一个专栏中我写完了内核源码层面看Linux,我们把抽象层拉高一点,看看Linux是如何工作的! Linux如何启动? BIOS(Basic Inpu…

linux基础命令第二篇

雷迪斯and the乡亲们 欢迎你们来到 奇幻的编程世界 8.history命令 作用:查看和控制历史命令纪录 保存位置::~/.bash_history (1)在启动终端的时候,会自动从:~/.bash_history 中读取历史命令…

【优选算法】——双指针——15. 三数之和

目录 1.题目 2.解法(排序双指针): 算法思路: 3.代码实现 1.题目 15. 三数之和 提示 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足…

RT-Thread移植到STM32F407

1、获取RT-Thread源码 首先到rtthread官网下载rt-thread nano后解压 解压后打开后内容如下。 2、系统结构 各文件夹的作用如下: Rt-Thread-nano源码结构 文件夹描述bsp板级支持包components/finshRT-Thread组件docs文档信息include头文件libcpu/arm与arm处理器相…

根文件系统的其他测试

文章目录 一、hello测试程序编写二、程序后台运行1.在后台运行方法2.中文显示测试3.开机自动启动测试 一、hello测试程序编写 💦我们使用 Linux 的目的就是运行我们自己的软件,我们编译的应用软件一般都使用动态库,使用动态库的话应用软件体…

获取两个时间之间的月份

工具类 public static List<String> getMonthBetweenDate(Date startDate, Date endDate) {ArrayList<String> result new ArrayList<String>();SimpleDateFormat sdf new SimpleDateFormat("yyyy.MM");//格式化&#xff0c;调整为自己需要的格…

摩菲Murphy显示器显示表 总线编程器维修PV780B

Murphy仪器维修包括&#xff1a;摩菲数字显示器&#xff1b;摩菲监视仪表&#xff1b;摩菲CAN总线控制器等维修 维修故障包括&#xff1a;黑屏、指示灯无显示&#xff0c;触摸屏上电无反应&#xff0c; 上电蓝屏、白屏&#xff0c;通电几分钟后屏幕变为蓝屏&#xff0c;主板故…

班级综合测评|基于Springboot+vue的班级综合测评管理系统(源码+数据库+文档)

目录 基于Springbootvue的“智慧食堂”系统 一、前言 二、系统设计 三、系统功能设计 1 管理员功能模块 2学生功能模块 3教师功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大…

应用系统集成企业微信的技术方案和最佳实践

本文以springbootvue技术开发的低代码平台为案例&#xff0c;介绍应用系统如何集成企业微信&#xff0c;包括同步企业微信组织用户、单点登录、消息发送等。 在线体验&#xff1a;http://www.yunchengxc.com 1、准备应用 1.1、注册企业微信账号 作为企业微信的企业管理员&a…

铅离子/镉离子绿色荧光探针,具有高特异性高灵敏度

基本信息&#xff1a; 中文名称&#xff1a;铅离子/镉离子绿色荧光探针 英文名称&#xff1a;Leadmium TM Green AM dye 外观&#xff1a;固体或粉末状 规格&#xff1a;10mg、25mg、50mg (可支持定制&#xff09; 纯度&#xff1a;95% 储存条件&#xff1a;-20C避光避湿…

46. UE5 RPG 增加角色受击反馈

在前面的文章中&#xff0c;我们实现了对敌人的属性的初始化&#xff0c;现在敌人也拥有的自己的属性值&#xff0c;技能击中敌人后&#xff0c;也能够实现血量的减少。 现在还需要的就是在技能击中敌人后&#xff0c;需要敌人进行一些击中反馈&#xff0c;比如敌人被技能击中后…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-10.1-NXP SDK 移植

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

夸克网盘拉新怎么做?分享网盘拉新攻略!

夸克网盘拉新怎么做&#xff1f;如何通过推广夸克网盘来赚佣金&#xff1f;相信大家应该都使用过夸克网盘&#xff0c;现在夸克网盘的拉新赚佣金活动开展的如火如荼&#xff0c;不少朋友通过夸克网盘拉新赚取收益&#xff0c;真的很香。还有一部分想要赚佣金但是不知道如何操作…

C语言例题39、输入一个正整数,将其反方向逆序输出

#include <stdio.h>void main() {int x;int ge; //个位int result 0;printf("请输入一个正整数&#xff1a;");scanf("%d", &x);while (x > 0) {//解题原理ge x % 10;//每次分解取得个位的数字result result * 10 ge;//个十百千万顺序向左…

libcity 笔记:添加自定义dataset

假设我们把libcity/data/dataset/trajectory_dataset.py复制一份到libcity/data/dataset/dataset_subclass/GeolifeDM_dataset.py&#xff0c;里面内容不变&#xff0c;只是把class的名字换了 那其他需要修改哪些内容&#xff0c;使得这个dataset生效呢 libcity/data/dataset/d…

Python应用:让生活更智能

随着科技的进步&#xff0c;Python已成为一种非常受欢迎的编程语言&#xff0c;它在数据分析、人工智能、Web开发等领域有着广泛的应用。今天&#xff0c;我们将探讨一个Python应用的例子&#xff0c;这个应用将帮助我们更智能地管理日常生活。 应用名称&#xff1a;智能生活助…