stanford-cryptography
所属分类:加密解密
开发工具:Rust
文件大小:38KB
下载次数:0
上传日期:2019-03-19 16:52:26
上 传 者:
sh-1993
说明: 斯坦福大学Coursera密码学I的编程作业
(Programming assignments for Coursera Cryptography I by Stanford University)
文件列表:
LICENSE (1071, 2019-03-20)
w1-many_time_pad (0, 2019-03-20)
w1-many_time_pad\Cargo.lock (1676, 2019-03-20)
w1-many_time_pad\Cargo.toml (169, 2019-03-20)
w1-many_time_pad\src (0, 2019-03-20)
w1-many_time_pad\src\main.rs (5775, 2019-03-20)
w2-aes (0, 2019-03-20)
w2-aes\Cargo.lock (8568, 2019-03-20)
w2-aes\Cargo.toml (220, 2019-03-20)
w2-aes\src (0, 2019-03-20)
w2-aes\src\main.rs (4797, 2019-03-20)
w3-file_auth (0, 2019-03-20)
w3-file_auth\Cargo.lock (4826, 2019-03-20)
w3-file_auth\Cargo.toml (188, 2019-03-20)
w3-file_auth\src (0, 2019-03-20)
w3-file_auth\src\main.rs (5224, 2019-03-20)
w4-padding_oracle_attack (0, 2019-03-20)
w4-padding_oracle_attack\Cargo.lock (58020, 2019-03-20)
w4-padding_oracle_attack\Cargo.toml (210, 2019-03-20)
w4-padding_oracle_attack\src (0, 2019-03-20)
w4-padding_oracle_attack\src\main.rs (2329, 2019-03-20)
w5-mitm_dlog (0, 2019-03-20)
w5-mitm_dlog\Cargo.lock (1242, 2019-03-20)
w5-mitm_dlog\Cargo.toml (191, 2019-03-20)
w5-mitm_dlog\src (0, 2019-03-20)
w5-mitm_dlog\src\main.rs (2762, 2019-03-20)
... ...
# Programming Assignments for Cryptography I by Stanford University
The programming assignments for Coursera Cryptography I by Stanford University are optional, and are only now being worked on (WIP) after I have finished the course. I'll be using [Rust](https://www.rust-lang.org/) to work on these.
### Week 1: [Many Time Pad][week-1]
Let us see what goes wrong when a stream cipher key is used more than once. Given ciphertexts encrypted with the same stream cipher key, our goal is to decrypt the target ciphertext to get the secret message.
### Week 2: [AES in CBC and CTR modes][week-2]
Implement two encryption/decryption systems, one using AES in CBC mode and another using AES in counter mode (CTR). Given pairs of AES key and ciphertext, our goal is to recover the plaintext.
### Week 3: [File Authentication System with SHA256][week-3]
Our goal in this project is to build a file authentication system that lets browsers authenticate and play video chunks as they are downloaded without having to wait for the entire file.
### Week 4: [Padding Oracle Attack][week-4]
Let's experiment with a padding oracle attack against a toy website. Knowing that the website is vulnerable to a CBC padding oracle attack, our goal is to decrypt the ciphertext in the sample intercepted URL.
### Week 5: [Meet-in-the-Middle Attack (MITM) on Discrete Log][week-5]
Our goal is to write a program to compute discrete log modulo a prime _p_. In this project, we'll implement an algorithm that runs in time roughly 2^40 = 2^20 using a meet-in-the-middle attack.
### Week 6: [RSA Problem][week-6]
Our goal in this project is to break RSA when the public modulus N is generated incorrectly. If the primes _p_ and _q_ are close to each other, _N = pq_ can be easily factored.
[week-1]: w1-many_time_pad/
[week-2]: w2-aes/
[week-3]: w3-file_auth/
[week-4]: w4-padding_oracle_attack/
[week-5]: w5-mitm_dlog/
[week-6]: w6-rsa_problem/
## Acknowledgements
The Coursera [Cryptography I](https://www.coursera.org/learn/crypto) is offered by Stanford University and taught by Professor Dan Boneh. Only shortened/paraphrased description of the programming assignments are provided in this repository. Please visit the online course for the original and full description of the weekly programming assignments.
近期下载者:
相关文件:
收藏者: