Engineer’s Responsibilities
One of the main roles engineers play in managing cyber risks is creating secure programs and connections for data to be transferred. This can be done through either encryption strength or just following fundamental design principles, but preferably both. Encryption is when you send me a message in code, but when I receive it, I have to tools to read it. It used to be that both parties would need the same encryption key and method of cracking the code to be able to send encrypted messages to each other, but a key can be lost or brute forced. Now, we have public encryption key, that is, the key to encrypting the plaintext is public knowledge. The security of public key algorithms stems from the sheer volume of possible decryption keys possible, for every bit of a key’s length there are two options (1 and 0) so the at any length, the possible combinations for the key would be two to the x power where x is the length.
Another thing engineers can do is to write clear code that makes sense. One of the first things we learn in basic programming courses is to comment code, but because that’s extra effort, just name your variables and class names, functions, etc something that makes sense based on what it does, calls, or references. Don’t name your variable for a school’s population size int donutsprinkles, call it SchoolPop. Slightly further along when we make functions to call, we learn to make them simple. Break the operation into basic parts with simple functions that are easy to fix/adjust when necessary. This leads to more readable code, as well as code that is more easy to troubleshoot when something goes awry. These fundamentals of program design are another way engineers can help manage cyber threats by having flexible, easy to diagnose programs.