Journal Free Write #4

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.