2. The Context of Cybersecurity: Cyberspace 17 The secret to building computers and software is encapsulation and abstraction. Encapsulation is the process of grouping functionality into a single simple unit, and an abstraction is a high-level summary that retains the essential elements. The human mind can only comprehend so much complexity, which means we are limited to relatively simple designs. The simple computer in the illustration shows a few components, but imagine a similar design with a little more complexity—maybe a few dozen gates that control the flow of an electric current and a few more inputs and outputs (i.e., lightbulbs). It would still be possible for us to take this in, maybe not at a glance, but with a little study, and understand what is going on and exactly how the circuit works. That would probably look more like the very first primitive computers, as humans started making progress in the field. There would be no mystery, but it could still do something more useful than helping to determine the suitability of vacation destinations. This is where encapsulation comes in. Once we understood how the simple design worked, and how certain inputs produced certain outputs, we could draw a proverbial black box around that simple design, and refer to it as a single component that performs function A. In doing so, we have abstracted the logic from the detailed implementation into a high-level understanding. Then we could make several other simple designs that perform similarly simple functions B, C, and D, and we could do the same process with them—draw black boxes around and abstract them. Now here is the big step: we could then take these simple black box components, and combine them into a new simple design. The new design would still have a manageable number of components, each performing a function that we could understand, but because each component is itself made up of several circuits, the overall level of complexity would be taken up a notch, and could start getting beyond our ability to truly comprehend at the detail level. Maybe function A performs Boolean AND logic on several bits, and B performs Boolean OR logic, and by combining several of them in clever ways, we could produce function SUM which performs binary addition. Then we could draw a black box around SUM, and use it in its own design which is composed of similar more complex black boxes that could perform multiplication. Now imagine doing this building upon building multiple times, each time adding a layer of abstraction—this starts to approach a modern day computer. At its basic level it is still the extremely simple processing of 1s and 0s, but the way we think about how it works is at a highly abstracted level, far above the level of wires and switches. Add to this the inhuman speed and scale of computers, and it all seems like magic, which is generally how we all think of computers. They are truly an engineering marvel, and represent the peak of humanity’s technological prowess. This is relevant for cybersecurity because it shows that computers at their base are highly complex. It takes hundreds of billions of circuits, and millions of black box components to create a modern computer. There is an old saying in cybersecurity you will see again and again in this text: complexity is the worst enemy of security. Light, whether that be physical light leading to visibility, or metaphorical light leading to understanding, is vital to security, and computers are full of darkness (i.e., complexity). This is why understand-
RkJQdWJsaXNoZXIy MTM4ODY=