Image for post
Image for post
Photo by Taylor Vick on Unsplash

The field of Cryptography is amongst the most important in all of academia, while also being the most difficult to get right. Being trusted to safeguard applications ranging from cellular communications to digital banking and internet access, this area of research is highly trusted by the masses while paradoxically being subjected to the largest amount of scrutiny and seeing major vulnerabilities arise on a regular basis. According to Schneier’s law, “any person can invent a security system so clever that she or he can’t think of how to break it”.


Image for post
Image for post
Photo by chris panas on Unsplash

Public-Key Cryptography is an increasingly important area of mathematics that forms the cornerstone of modern communication. However owing to the growing complexity of such systems, even developers and those that interact with such systems often don’t understand their maths and inner workings, instead relying on high-level abstractions and preexisting implementations. Owing to the inherent danger of implementing your own cryptographic algorithms, this often isn’t a bad thing. However, if your goal is to understand these systems from the ground up and learn of their common weaknesses, having a deep understanding can be highly useful.

In this article I’ll primarily be…


Image for post
Image for post
Creative Commons Bloch Sphere by glosser.ca

“I think I can safely say that nobody understands quantum mechanics” — Richard Feynman

Quantum Computing has always been an enticing topic amongst tech writers and journalists. Its promises to the world of computing — and its difficulty — have enabled the area of research to gain an almost mystical reputation. All too often, articles and infographics surrounding the subject give high praise to its apparent potential while skimming over how such a system works in practice. This tends to misinform all but the most avid of readers.


Image for post
Image for post
A snippet of code from OpenSSL, a popular open source Crypto library for encrypting network traffic.

Cryptography’s inner workings have long been regarded as exclusive to the realms of experts and mathematicians, its technicalities being largely attributed to magic. Given the complicated nature of the state of modern cryptography, this is understandable. However, through many of the global movements that stem from a lack of understanding on the subject such as the UK’s proposed Encryption Ban and Australia’s Assistance and Access Bill, it is clear that this approach is doing far more harm than good.

In this guide, I will give a crash course in everything that you might need to know to get started in…


Image for post
Image for post
A screenshot of Basilica OS, the system that we will be developing in this tutorial

If you’ve ever used a computer, you may have found yourself wondering how operating systems function on a low level, or even how you you would go about developing one yourself. To say that kernel development is difficult is a severe understatement, it really is “the great pinnacle of programming”. In this guide, we will introduce the basic tools needed and implement a simple operating system in C and x86 Assembly.

The system we will be developing is known as ‘Basilica OS’, named in tribute to the now late developer of TempleOS, Terry Davis. …

Leo Whitehead

Cryptography, C, security and other related oddities. https://whiteheadsoftware.dev

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store