Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Build a RC5 Symmetric Block Cipher in Rust
Rating: 4.5 out of 5(6 ratings)
154 students

Build a RC5 Symmetric Block Cipher in Rust

A practical approach to Cryptography
Created byGuido Giuntoli
Last updated 8/2023
English

What you'll learn

  • Understand how symmetric-block cipher works
  • Implement a RC5 block cipher library in Rust
  • Understand what operation modes are
  • Implement the Cipher Block Chaining mode using the RC5 algorithm for encrypting large messages.

Course content

3 sections25 lectures4h 3m total length
  • Introduction6:00

    Explore the theory and practice of symmetric block ciphers and rc5. Implement rc5 in Rust using generics and native types, with cbc mode tests from the original paper.

  • Cryptography Symmetric vs. Asymmetric Algorithms14:48

    Explore a simplified map of cryptography, distinguishing symmetric and asymmetric ciphers, protocols, and cryptanalysis, with examples like RSA, elliptic curves, and sha-256 hashing.

  • The XOR & Left/Right Shift Operators12:12
  • Stream & Block Ciphers11:43

    Differentiate stream ciphers from block ciphers, highlighting diffusion and confusion across rounds in block ciphers. Note XOR and pseudo random generators underpin stream cipher security.

  • Feistel Networks: Confusion & Diffusion10:58

    Discover how feistel networks use left and right halves and a round function to create confusion and diffusion. Understand why Ark5 uses a feistel-like structure and remains invertible for decryption.

  • The RC5 Cipher20:07

Requirements

  • To have a computer able to compile and run Rust code. Most of the concept are explained from the ground up.

Description

This course teaches you how to build an RC5 symmetric block cipher in Rust. If you are interested in learning cryptography or how to build practical applications in Rust, this course is definitely for you.

The course is divided into three main sections:


  1. In the first one, we will explain the theory of symmetric encryption and block ciphers. We will see what diffusion and confusion mean, and we will look into the details of the RC5 block cipher.

  2. In the second, we will implement the RC5 cipher using Rust. We will learn how, with Rust-Generics, we can extend the capabilities of the cipher to words of 32, 64, and 128 bits without duplicating code.

  3. In the third one, we will implement a real-world application that uses the RC5 cipher and cipher block chaining mode to encrypt and decrypt large files.

I recommend you program the RC5 cipher by yourself as you look at the video and also to create your own Github Repository. This will serve as a showcase for your future employers that you know what you are talking about and that you have Rust and Cryptography experience. Most important of all I also recommend you to have fun and ask every question you have!

Who this course is for:

  • People curious on understanding cryptographic ciphers
  • People eager to learn Rust in deep