1 year ago

Embedded Systems Cryptography & Encryption by Embedded Expert IO : Course Summary

An embedded system course review. The blog should give you an idea on whether or not you should pay for this course. Read and Enjoy!

Welcome back to another quick write-up on embedded systems. Today, I am taking the time to write a course review from embeddedexpert.io on Embedded Systems Cryptography and Encryption. I am going to tell you everything to take away, my opinion, and some additional information to help you decide on whether to take the course.

Here’s a link to the course for your reference!

https://study.embeddedexpert.io/courses/?query=Embedded+Systems+Cryptography+%26+Encryption+: Embedded Systems Cryptography & Encryption by Embedded Expert IO : Course Summary

Let’s begin.

What is cryptography?

The practice of securing your data, commonly referred to as encryption; using mathematical algorithms and techniques is called cryptography. Yes, this is just as important in an embedded setup and not just for conventional IT infrastructure. With the world moving towards connected entities and trying to achieve edge computing, embedded systems are here to stay as they achieve sizeable action considering the size and power they consume to do so. There needs to be appreciation and recognition of the need to protect and secure your data. Should you be a victim of a cyber-attack or worse, should the break-system module in your car be subject to a cyber-attack; it proves fatal. This is possible! Don’t for a second think it’s too hard to do so. With the right motivation, most things are possible. Now, having said that it calls for the need to reflect on one’s security posture and learn more about it.

To briefly touch on the types of cryptographic techniques, there are two main ones:

  1. Symmetric Key Cryptography
  2. Asymmetric Key Cryptography

Feel free to read more about it, but this article is more about what you’re learning from the course.

What is Encryption?

The core concept of cryptography is encryption where plain text data is converted into cipher text. This text is unreadable unless decoded using appropriate mathematical techniques.

Some common encryption techniques are:

  1. TLS
  2. AES
  3. DES
  4. Hash Functions
  5. PKIs
  6. Diffie- Hellman

These techniques need to be deployed into the embedded context and the best fit for embedded systems needs to be analyzed and picked out.

Course Overview

Let’s get into the course!

Note: The course does expect you to have a microcontroller of any kind, but the trainer uses an STM series controller.

Part 1: Need for security and encryption in Embedded systems today.

The course starts with the fundamentals of security and gives you the impetus and need to study security as a subject for embedded systems today. A brief overview of the different kinds of security has been explained and a lot of the basics are assumed knowledge.

Note: If you would like to learn security as a subject in more detail, this might not be the best course for you to take! The section is simply structured to give you good reasons to incorporate security into your embedded device and networking framework.

Part 2: Setting up your IDE and work Environment.

A set of videos in the series is dedicated to on-boarding you into the work environment. The introduction segues well into this section where you can follow the video to get yourself to crank up some code and have it deployed into the system(microcontroller).

To let you know:

IDE used: STM CubeIDE.

Controller: Stm32

I would highly recommend having a controller with you before you can enroll in the course.

Part 3: Essential Driver Development

This section focuses on developing essential drivers you will require for the duration of the course. This is a BareMetal program where you can learn how to code essential drivers for your controllers. It teaches you how to read data sheets and retrieve essential information that can aid you in coding those driver files.

This is a very good section if you haven’t done driver development before. If you have, this is a repeat section, and you may skip it. You’re not going to be missing out on much tutelage; however, make sure you have the UART and the ADC driver in place before you move on to the actual course. These drivers aid you in debugging and completing the coursework.

Part 4: Encryption Techniques

 This is essentially the part of the course you’d be most interested in. Let’s jump in.

  1. Ceasars Cipher

This is the first cipher you’ll learn about in the course. A brief introduction on the topic followed by writing functions to encrypt and decrypt using this cipher is what you’d be learning in this section of the course.

Don’t expect too many mathematical explanations on the topic as he is essentially teaching you how to convert the math into a function that can perform the intended action in a controller context.

If you’re looking for the fundamentals of how the cipher was designed and developed, this may not be the course to look at. Just a word of advice. If you’re looking to convert math into code, this class will teach you how to interpret and convert the same.

More information on Caesar’s cipher:

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjo1I_Mr_eCAxXqMDQIHc1qBhsQFnoECBgQAQ&url=https%3A%2F%2Fwww.geeksforgeeks.org%2Fcaesar-cipher-in-cryptography%2F&usg=AOvVaw1TqWSBi6oMUrGv4HR2K1fE&opi=89978449

https://crypto.interactive-maths.com/caesar-shift-cipher.html

  • MonoAlphabetic Cipher

The next cipher on the list is the monoalphabetic cipher. This cipher in its core is a substitution cipher wherein the given plaintext is shifted or replaced with a corresponding value. The key is defined statically by the cipher engine user and is required by the decrypting entity at the time of decrypting this value to its appropriate plaintext.

You will essentially learn to write functions to make this encryption and decryption possible. The mathematical model behind this cipher is relatively simple; however, don’t expect an elaborate explanation of the topic by the instructor.

More information and useful information on MonoAlphabetic Cipher

https://www.cryptool.org/en/cto/monoalpha

https://www.101computing.net/mono-alphabetic-substitution-cipher/

  • Polyalphabetic Cipher

The advanced version of the monoalphabetic is the polyalphabetic cipher. The salient difference is performing multiple substitutions instead of one. Again, you will learn some amount of rudimental math involved in being able to build these functions but if you’re looking to learn more about it from scratch, it might not be the best course for you.

You will, however, learn to write code, deploy, and play around with encryption techniques in a microcontroller framework.

Vigenère cipher is the one used to explain the concepts of polyalphabetic cipher encryption.

More Information on Vigenère Cipher can be found below:

https://crypto.interactive-maths.com/polyalphabetic-substitution-ciphers.html

https://www.geeksforgeeks.org/vigenere-cipher/

  • Multiplicative Cipher

The key is in the aspect of multiplying your plaintext with a key of strings. The same key would be required to decode successfully. This is another substitution cipher that relies on modular multiplication to create that encrypted cipher text.

You will learn to write an encryption and decryption function to understand the cipher technique. More information on multiplicative cipher can be found in the links below:

https://www.geeksforgeeks.org/what-is-multiplicative-cipher-in-cryptography/

https://www.dcode.fr/multiplicative-cipher

As of Dec 2023, a bonus lesson on scripting is available to you for you to be able to connect your computer and controller and use these as two communicating entities exercising your cipher functions. The controller can encrypt, and the computer can have a function to decrypt and vice versa.

Note: The course has more content to be added; will keep you posted through the comment section depending on when you read this.

Technical Review and Comments

You will want to enroll in this course if you belong and wish the following points:

  1. You want to get an introduction to writing crypto engines.
  2. You Want to play around with your controller from a security standpoint.
  3. Playing around with the controller in general.
  4. You are Looking for a stepping stone into embedded security.
  5. Add a very basic level certification of completion to your resume.
  6. You are looking to increase your existing embedded knowledge by having a brief introduction to security/ encryption concepts.

You may not want to take this course if you belong in the following category:

  1. You know your embedded concepts well and this isn’t the first time you’re writing c code and deploying stuff onto your device.
  2. You know cryptography and security concepts.
  3. Good knowledge of being able to convert mathematical models into code.

This course does provide a framework for people who are starting out; it is not meant for the seasoned who’ve cranked code for a few years now.

Having said that, for a beginner, I’d recommend it!

That’s it for this one folks. Hope you got some idea on whether or not you should buy this course.

Thanks for reading.

Until Next Time

BootUP!

Read More of my stuff in the links below!

Written by BootUP

A Technology enthusiast eager to learn and teach!

Categories Technical ContentTags