I am a developer fellow for Code for Canada, a non-profit organization that works with government agencies to deliver better digital services to the public. I am part of a team of three that is working with Employment and Social Development Canada (ESDC) for a 9-month fellowship. We have been working on a prototype for a tool called a Policy Difference Engine (PDE). The purpose of this tool is to measure how a change to a rule may impact a population. The key component of a PDE is a reliable encoding of the “rule”, which here refers mainly to a…


I am a developer fellow for Code for Canada, a non-profit organization that works with government agencies to deliver better digital services to the public. I am part of a team of three that is working with Employment and Social Development Canada (ESDC) for a 9-month fellowship. We have been working on a prototype for a tool called a Policy Difference Engine (PDE). The purpose of this tool is to measure how a change to a rule may impact a population. The key component of a PDE is a reliable encoding of the “rule”, which here refers mainly to a…


I am a developer fellow for Code for Canada, a non-profit organization that works with government agencies to deliver better digital services to the public. I am part of a team of three that is working with Employment and Social Development Canada (ESDC) for a 9-month fellowship. We have been working on a prototype for a tool called a Policy Difference Engine (PDE). The purpose of this tool is to measure how a change to a rule may impact a population. The key component of a PDE is a reliable encoding of the “rule”, which here refers mainly to a…


In part II of this series, we looked at how two entities could share a secret in a public space using a key exchange. In this final part, we will look at authentication.

PART III: AUTHENTICATION AND RSA

Asymmetric Encryption

Faced with two cloaked figures who both are both claiming to be Beta, Alpha must find a way to determine which one is actually Beta. In order to do this, we are going to need to introduce some form of higher “authority”. Before going into what that means, let’s outline the general flow. We are going to be using asymmetric…


In part I of this series, we introduced the idea of a cipher for encrypting and decrypting text between two entities. We now continue with part II, where we will learn how two different parties can establish a shared secret.

PART II: A SHARED SECRET

Mathematical tools: The modulus and the power

The first mathematical tool we are going to use is called the modulus function. To understand the modulus function, let’s look at an example. We want to know the value for 29 modulus 8, or 29 mod 8 for short (or 29%8 for even shorter). The modulus is…


Cryptography is the science of secure communication. Two entities (people) want to communicate in some sort of public space without anyone being able to understand what is being said, except for the two entities involved. While this field has ancient roots, it is a very important study today, when millions of people are sending sensitive information over the internet every day. The processes to achieve secrecy on the web are complex and sophisticated, but underlying them are some fundamental mathematical concepts.

The goal of this series is to convince the reader that it is possible for two entities to communicate…


An introduction to modeling legislation with Rules as Code

I am a developer with Code for Canada, a non-profit organization that works with government partners to deliver better digital services to the public. Every year, Code for Canada selects a cohort of fellows for a 10-month fellowship, lasting from November to August. I have the pleasure of being a developer fellow alongside UX Designer, Sidra, and Product Manager, Dena. For the duration of the fellowship, we will be working with Employment and Social Development Canada (ESDC). …

Regan Meloche

Developer working in Civic Tech

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