Computers today often have 4, 8, 16, 32, or more GBs of main memory (RAM). Solid‐state drives (SSDs) that are much faster (but more expensive) than hard drives (HDDs) are now prevalent in desktops and laptop computers. The memory hierarchy of a computer is discussed in Section 17.2.
Central processing unit (CPU) and graphics processing unit (GPU)
CPUs (processors, or central processing units) on desktops and laptops (and even portable devices such as smart phones) have progressed from mainly one‐core processors to multicore processors with 2, 4, 8, or more cores. With multicore processors, multiple tasks can be done in parallel.
GPUs (graphics processing units), previously reserved for doing calculations to display graphics, can do some types of calculations, such as certain matrix manipulations, extremely quickly as they have many, many cores.
Moore's law
An empirical rule that has held true for a few decades is Moore's Law. In 1965, Intel cofounder Gordon Moore asserted that, “The number of transistors incorporated in a chip will approximately double every 24 months” (see [Int19]). For many years, the computing power of our desktop and laptop computers doubled every 18 months or so. As processor power increases, we must ensure that an adversary, Eve, who should not have the appropriate decryption keys, cannot decrypt our data and messages. This led in part to the replacement of DES with AES (see Section 1.6).
Recently, some have argued that Moore's law is dead. (See [Hea18, Sim16, Tib19], for example.) However, the performance of chips can still increase from changes in chip design. For example, multicore chips are now common‐place. Multiple computations can be done in parallel (at the same time) on different cores in a chip. Other factors, such as artificial intelligence (AI), cloud computing, and quantum computing, mean that we must continue to keep our encryption algorithms up to date. The amount and types of data, some of which are very personal and/or sensitive (e.g. health records, financial records), have never been greater in quantity and sensitivity. The need for encryption using encryption algorithms that are not susceptible to attacks has never been greater.
Artificial intelligence (AI)
Artificial intelligence, AI, and machine learning are allowing cloud computing companies and even apps on phones to make predictions, such as what task should be performed next. We have progressed from having desktop and laptops to using smartphones, tablets, and smart watches, social media, cloud computing, and the IoT devices.
Smart phones
Cell phones have progressed from a basic cell phone (often a “flip phone”) to Research in Motion's BlackBerry 5810 in 2002 to Apple's first iPhone in 2007 to the first Android phone in 2008, to the smart phones of today. Phone apps allow users to video conference, watch movies, play video games, access important data, and make purchases.
Streaming – video and audio
Video and audio streaming have become so prevalent that a major portion of all Internet traffic is from streaming. We shall discuss streaming in Chapter 17.
Social media
Social media has seen exponential growth as well. For example, as of early 2019, Twitter had 126 million active daily users and Facebook had 1.2 billion daily users [Sha19]. In 2017, Facebook hit 2 billion monthly users. Yurieff notes in [Yur17] that, “It took the social network less than five years to go from 1 billion monthly users to 2 billion.”
Cloud computing
Cloud computing is now extremely important, with companies offering impressive software, sometimes for free. Cloud computing providers have the ability to do some computations at much faster pace than we could with our personal devices. They have the advantage that they might have many computers at their disposal and so can use parallelism, artificial intelligence (AI) and other means to give results quickly. They can allow us to access our data from different devices from different locations in the world. Extremely important records, such as financial records and medical records, are accessible via browsers on computers and apps on phones. According to Gartner, “The worldwide public cloud services market is forecast to grow 17% in 2020 to total $266.4 billion, up from $227.8 billion in 2019…,” [Gar19]. Chapter 28 deals with cloud computing.
Internet of Things (IoT)
The IoT is another major force today. It refers to any object or device that is connected to the Internet. A smart home can have many devices that can communicate with your phone, such as door bells to light bulbs to audio speakers. Amazon's Alexa is one example of IoT. In 2019, Amazon reported that over 100 million Alexa devices had been sold, [New19a]. Many IoT devices communicate by Bluetooth. The health‐care field is also being transformed. As always, we need to be wary of security concerns. For example, in August 2019, USA Today had an article by Jefferson Graham entitled, “Sorry, readers. Your Bluetooth device is a security risk,” [Gra19]. They quote Jovi Umawing, a research at Malwarebytes Labs:
A year ago, I was on a ferry coming back from vacation and had a weird photo (a meme style image) pop up on my phone via Airdrop from a source I didn't recognize,” he says. ”I checked my settings, and it was open to anyone. I immediately shut it off and have left it off ever since. I turn it on to receive from people only when they are standing right in front of me.”
Bluetooth has a limited range. So it is relatively safe around the home, unless there is an attacker nearby. But, in a public area, it might be best to turn it off. Graham also quotes Matt Lourens, a security engineering manager with Checkpoint software. He says,
Another concern: shopping. Many retailers have Bluetooth beacons placed in‐store to watch over you and track your location and shopping habits. Turning off Bluetooth before you enter will save your battery and keep prying eyes away from your device.
Bluetooth 5 devices have a range of up to 800 feet. (theoretically) The security of some IoT devices is of major concern. We shall discuss this further in Chapter 27 on the IoT.
Privacy concerns
Privacy and security go together. Biometrics are important as they have both applications and privacy concerns. You might use a fingerprint or facial recognition software on your phone, tablet, or computer to unlock it. Some airports now use facial recognition software to identify travelers so as to improve efficiency for processing the vast number of people that pass through an airport each day. See [Oli19] or [New19b], for example.
Security and privacy
Together, these add up to the need for security and privacy to be part of the decision‐making in the development of software and hardware of devices at every stage and level. Security and privacy breaches are reported regularly on the news. Programmers must be ever vigilant to make sure that they write code in a “safe” way so as to ensure privacy and security. Will input provided to the code always be friendly, or could it be malicious? If input could arrive from an outside source (such as via the Internet), then you should assume that there will be malicious attacks. For example, for the C programming language, we recommend two wonderful books on this topic: Secure Coding in C and C++, second edition by Seacord, [Sea13], and C Programming: A Modern Approach, second edition, by King, [Kin08]. We discuss this more in Section 7.20.
Cryptography
Let