COMPUTER ARCHITECTURE AND SECURITY Information Security Series
The Wiley-HEP Information Security Series systematically introduces the fundamentals of information security design and application. The goals of the Series are:
to provide fundamental and emerging theories and techniques to stimulate more research in cryptol- ogy, algorithms, protocols, and architectures; to inspire professionals to understand the issues behind important security problems and the ideas behind the solutions; to give references and suggestions for additional reading and further study.
The Series is a joint project between Wiley and Higher Education Press (HEP) of China. Publications consist of advanced textbooks for graduate students as well as researcher and practitioner references covering the key areas, including but not limited to:
– Modern Cryptography – Cryptographic Protocols and Network Security Protocols – Computer Architecture and Security – Database Security – Multimedia Security – Computer Forensics – Intrusion Detection
Lead Editors Songyuan Yan London, UK Moti Yung Columbia University, USA John Rief Duke University, USA
Editorial Board Liz Bacon University of Greenwich, UK Kefei Chen Shanghai Jiaotong University, China Matthew Franklin University of California, USA Dieter Gollmann Hamburg University of Technology, Germany Yongfei Han Beijing University of Technology, China ONETS Wireless & Internet Security Tech. Co., Ltd. Singapore Kwangjo Kim KAIST-ICC, Korea David Naccache Ecole Normale Superieure, France Dingyi Pei Guangzhou University, China Peter Wild University of London, UK COMPUTER ARCHITECTURE AND SECURITY FUNDAMENTALS OF DESIGNING SECURE COMPUTER SYSTEMS
Shuangbao (Paul) Wang George Mason University, USA
Robert S. Ledley Georgetown University, USA This edition first published 2013 # 2013 Higher Education Press. All rights reserved.
Published by John Wiley & Sons Singapore Pte. Ltd., 1 Fusionopolis Walk, #07-01 Solaris South Tower, Singapore 138628, under exclusive license by Higher Education Press in all media and all languages throughout the world excluding Mainland China and excluding Simplified and Traditional Chinese languages.
For details of our global editorial offices, for customer services and for information about how to apply for permission to reuse th e copyright material in this book please see our website at www.wiley.com.
All Rights Reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, scanning, or otherwise, except as expressly permitted by law, without either the prior written permission of the Publisher, or authorization through payment of the appropriate photocopy fee to the Copyright Clearance Center. Requests for permission should be addressed to the Publisher, John Wiley & Sons Singapore Pte. Ltd., 1 Fusionopolis Walk, #07-01 Solaris South Tower, Singapore 138628, tel: 65-66438000, fax: 65-66438008, email: [email protected].
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.
Designations used by companies to distinguish their products are often claimed as trademarks. All brand names and product names used in this book are trade names, service marks, trademarks or registered trademarks of their respective owners. The Publisher is not associated with any product or vendor mentioned in this book. This publication is designed to provide accurate and authoritative information in regard to the subject matter covered. It is sold on the understanding that the Publisher is not engaged in rendering professional services. If professional advice or other expert assistance is required, the services of a competent professional should be sought.
Library of Congress Cataloging-in-Publication Data
Computer architecture and security : fundamentals of designing secure computer systems / Shuangbao (Paul) Wang, Robert S. Ledley. p. cm. Includes bibliographical references and index. ISBN 978-1-118-16881-3 (cloth) 1. Computer architecture. 2. Computer security. 3. System design. I. Wang, Shuangbao Paul. II. Ledley, Robert Steven. QA76.9.A73C6293 2012 005.8–dc23 2012027837
ISBN: 9781118168813
Set in 11/13 pt Times by Thomson Digital, Noida, India To our parents who care and educate us throughout our journey.
In memory of Dr. Ledley, who pioneered Biomedical Computing.
Contents
About the Authors xv Preface xvii Acknowledgements xix
1 Introduction to Computer Architecture and Security 1 1.1 History of Computer Systems 3 1.1.1 Timeline of Computer History 5 1.1.2 Timeline of Internet History 15 1.1.3 Timeline of Computer Security History 28 1.2 John von Neumann Computer Architecture 34 1.3 Memory and Storage 36 1.4 Input/Output and Network Interface 37 1.5 Single CPU and Multiple CPU Systems 38 1.6 Overview of Computer Security 41 1.6.1 Confidentiality 41 1.6.2 Integrity 42 1.6.3 Availability 42 1.6.4 Threats 43 1.6.5 Firewalls 43 1.6.6 Hacking and Attacks 44 1.7 Security Problems in Neumann Architecture 46 1.8 Summary 48 Exercises 48 References 50
2 Digital Logic Design 51 2.1 Concept of Logic Unit 51 2.2 Logic Functions and Truth Tables 52 2.3 Boolean Algebra 54 2.4 Logic Circuit Design Process 55 viii Contents
2.5 Gates and Flip-Flops 56 2.6 Hardware Security 58 2.7 FPGA and VLSI 58 2.7.1 Design of an FPGA Biometric Security System 59 2.7.2 A RIFD Student Attendance System 59 2.8 Summary 65 Exercises 67 References 67
3 Computer Memory and Storage 68 3.1 A One Bit Memory Circuit 68 3.2 Register, MAR, MDR and Main Memory 70 3.3 Cache Memory 72 3.4 Virtual Memory 74 3.4.1 Paged Virtual Memoryà 75 3.4.2 Segmented Virtual Memoryà 75 3.5 Non-Volatile Memory 76 3.6 External Memory 77 3.6.1 Hard Disk Drives 78 3.6.2 Tertiary Storage and Off-Line Storageà 78 3.6.3 Serial Advanced Technology Attachment (SATA) 79 3.6.4 Small Computer System Interface (SCSI) 80 3.6.5 Serial Attached SCSI (SAS) 81 3.6.6 Network-Attached Storage (NAS)à 82 3.6.7 Storage Area Network (SAN)à 83 3.6.8 Cloud Storage 85 3.7 Memory Access Security 86 3.8 Summary 88 Exercises 89 References 89
4 Bus and Interconnection 90 4.1 System Bus 90 4.1.1 Address Bus 91 4.1.2 Data Bus 93 4.1.3 Control Bus 93 4.2 Parallel Bus and Serial Bus 95 4.2.1 Parallel Buses and Parallel Communication 95 4.2.2 Serial Bus and Serial Communication 96 4.3 Synchronous Bus and Asynchronous Bus 107
à The star “Ô here means the content is a little bit more advanced. For teaching purpose, this content may be omitted for entry level students. Contents ix
4.4 Single Bus and Multiple Buses 109 4.5 Interconnection Buses 110 4.6 Security Considerations for Computer Buses 111 4.7 A Dual-Bus Interface Design 112 4.7.1 Dual-Channel Architectureà 113 4.7.2 Triple-Channel Architectureà 114 4.7.3 A Dual-Bus Memory Interface 115 4.8 Summary 115 Exercises 117 References 117
5 I/O and Network Interface 118 5.1 Direct Memory Access 118 5.2 Interrupts 120 5.3 Programmed I/O 121 5.4 USB and IEEE 1394 122 5.4.1 USB Advantages 123 5.4.2 USB Architecture 123 5.4.3 USB Version History 124 5.4.4 USB Design and Architectureà 125 5.4.5 USB Mass Storage 127 5.4.6 USB Interface Connectors 128 5.4.7 USB Connector Types 130 5.4.8 USB Power and Charging 133 5.4.9 IEEE 1394 136 5.5 Network Interface Card 136 5.5.1 Basic NIC Architecture 137 5.5.2 Data Transmission 138 5.6 Keyboard, Video and Mouse (KVM) Interfaces 139 5.6.1 Keyboards 140 5.6.2 Video Graphic Card 140 5.6.3 Mouses 140 5.7 Input/Output Security 140 5.7.1 Disable Certain Key Combinations 141 5.7.2 Anti-Glare Displays 141 5.7.3 Adding Password to Printer 141 5.7.4 Bootable USB Ports 141 5.7.5 Encrypting Hard Drives 141 5.8 Summary 141 Exercises 142 References 143 x Contents
6 Central Processing Unit 144 6.1 The Instruction Set 144 6.1.1 Instruction Classifications 144 6.1.2 Logic Instructions 145 6.1.3 Arithmetic Instructions 145 6.1.4 Intel 64/32 Instructionsà 147 6.2 Registers 153 6.2.1 General-Purpose Registers 153 6.2.2 Segment Registers 155 6.2.3 EFLAGS Register 156 6.3 The Program Counter and Flow Control 158 6.3.1 Intel Instruction Pointerà 158 6.3.2 Interrupt and Exceptionà 159 6.4 RISC Processors 161 6.4.1 History 162 6.4.2 Architecture and Programming 162 6.4.3 Performance 163 6.4.4 Advantages and Disadvantages 163 6.4.5 Applications 164 6.5 Pipelining 164 6.5.1 Different Types of Pipelines 164 6.5.2 Pipeline Performance Analysis 165 6.5.3 Data Hazard 166 6.6 CPU Security 166 6.7 Virtual CPU 168 6.8 Summary 169 Exercises 170 References 170
7 Advanced Computer Architecture 172 7.1 Multiprocessors 172 7.1.1 Multiprocessing 172 7.1.2 Cache 173 7.1.3 Hyper-Threading 174 7.1.4 Symmetric Multiprocessing 175 7.1.5 Multiprocessing Operating Systems 175 7.1.6 The Future of Multiprocessing 176 7.2 Parallel Processing 177 7.2.1 History of Parallel Processing 177 7.2.2 Flynn’s Taxonomy 178 7.2.3 Bit-Level Parallelism 178 Contents xi
7.2.4 Instruction-Level Parallelism 179 7.2.5 Data-Level Parallelism 179 7.2.6 Task-Level Parallelism 179 7.2.7 Memory in Parallel Processing 180 7.2.8 Specialized Parallel Computers 181 7.2.9 The Future of Parallel Processing 182 7.3 Ubiquitous Computing 182 7.3.1 Ubiquitous Computing Development 183 7.3.2 Basic forms of Ubiquitous Computing 184 7.3.3 Augmented Reality 185 7.3.4 Mobile Computing 186 7.4 Grid, Distributed and Cloud Computing 187 7.4.1 Characteristics of Grid Computing 187 7.4.2 The Advantages and Disadvantages of Grid Computing 188 7.4.3 Distributed Computing 189 7.4.4 Distributed Systems 189 7.4.5 Parallel and Distributed Computing 190 7.4.6 Distributed Computing Architectures 190 7.4.7 Cloud Computing 192 7.4.8 Technical Aspects of Cloud Computing 193 7.4.9 Security Aspects of Cloud Computing 194 7.4.10 Ongoing and Future Elements in Cloud Computing 195 7.4.11 Adoption of Cloud Computing Industry Drivers 196 7.5 Internet Computing 197 7.5.1 Internet Computing Concept and Model 198 7.5.2 Benefit of Internet Computing for Businesses 199 7.5.3 Examples of Internet Computing 201 7.5.4 Migrating Internet Computing 202 7.6 Virtualization 203 7.6.1 Types of Virtualization 203 7.6.2 History of Virtualization 205 7.6.3 Virtualization Architecture 205 7.6.4 Virtual Machine Monitor 207 7.6.5 Examples of Virtual Machines 207 7.7 Biocomputers 209 7.7.1 Biochemical Computers 209 7.7.2 Biomechanical Computers 209 7.7.3 Bioelectronic Computers 210 7.8 Summary 211 Exercises 212 References 214 xii Contents
8 Assembly Language and Operating Systems 216 8.1 Assembly Language Basics 217 8.1.1 Numbering Systems 217 8.1.2 The Binary Numbering System and Base Conversions 219 8.1.3 The Hexadecimal Numbering System 220 8.1.4 Signed and Unsigned Numbers 221 8.2 Operation Code and Operands 223 8.3 Direct Addressing 225 8.4 Indirect Addressing 225 8.5 Stack and Buffer Overflow 226 8.5.1 Calling Procedures Using CALL and RET (Return) 228 8.5.2 Exploiting Stack Buffer Overflows 229 8.5.3 Stack Protection 231 8.6 FIFO and M/M/1 Problem 232 8.6.1 FIFO Data Structure 232 8.6.2 M/M/1 Model 233 8.7 Kernel, Drivers and OS Security 234 8.7.1 Kernel 234 8.7.2 BIOS 235 8.7.3 Boot Loader 236 8.7.4 Device Drivers 237 8.8 Summary 238 Exercises 239 References 240
9 TCP/IP and Internet 241 9.1 Data Communications 241 9.1.1 Signal, Data, and Channels 242 9.1.2 Signal Encoding and Modulation 243 9.1.3 Shannon Theorem 244 9.2 TCP/IP Protocol 244 9.2.1 Network Topology 245 9.2.2 Transmission Control Protocol (TCP) 246 9.2.3 The User Datagram Protocol (UDP) 247 9.2.4 Internet Protocol (IP) 247 9.3 Network Switches 248 9.3.1 Layer 1 Hubs 248 9.3.2 Ethernet Switch 249 9.4 Routers 250 9.4.1 History of Routers 251 9.4.2 Architecture 251 9.4.3 Internet Protocol Version 4 (IPv4) 253 Contents xiii
9.4.4 Internet Protocol Version 6 (IPv6) 254 9.4.5 Open Shortest Path First 254 9.4.6 Throughput and Delay 256 9.5 Gateways 257 9.6 Wireless Networks and Network Address Translation (NAT) 258 9.6.1 Wireless Networks 258 9.6.2 Wireless Protocols 260 9.6.3 WLAN Handshaking, War Driving, and WLAN Security 261 9.6.4 Security Measures to Reduce Wireless Attacks 263 9.6.5 The Future of Wireless Network 263 9.6.6 Network Address Translation 264 9.6.7 Environmental and Health Concerns Using Cellular and Wireless Devices 265 9.7 Network Security 267 9.7.1 Introduction 268 9.7.2 Firewall Architecture 271 9.7.3 Constraint and Limitations of Firewall 273 9.7.4 Enterprise Firewalls 274 9.8 Summary 275 Exercises 276 9.9 Virtual Cyber-Security Laboratory 277 References 278
10 Design and Implementation: Modifying Neumann Architecture 280 10.1 Data Security in Computer Systems 280 10.1.1 Computer Security 281 10.1.2 Data Security and Data Bleaches 282 10.1.3 Researches in Architecture Security 283 10.2 Single-Bus View of Neumann Architecture 284 10.2.1 John von Neumann Computer Architecture 284 10.2.2 Modified Neumann Computer Architecture 285 10.2.3 Problems Exist in John Neumann Model 286 10.3 A Dual-Bus Solution 286 10.4 Bus Controller 288 10.4.1 Working Mechanism of the Bus Controller 288 10.4.2 Co-processor Board 289 10.5 Dual-Port Storage 292 10.6 Micro-Operating System 292 10.7 Summary 293 Exercises 294 10.8 Projects 295 References 295 xiv Contents
Appendix A Digital Logic Simulators 297 A.1 CEDAR Logic Simulator 297 A.2 Logisim 298 A.3 Digital Logic Simulator v0.4 298 A.4 Logicly 299
Appendix B Computer Security Tools 300 B.1 Wireshark (Ethereal) 300 B.2 Metasploit 300 B.3 Nessus 301 B.4 Aircrack 301 B.5 Snort 301 B.6 Cain and Abel 302 B.7 BackTrack 302 B.8 Netcat 302 B.9 Tcpdump 302 B.10 John the Ripper 303
Appendix C Patent Application: Intrusion-Free Computer Architecture for Information and Data Security 304 C.1 Background of the Invention 304 C.1.1 John von Neumann Computer Architecture Model 305 C.1.2 Modified Neumann Computer Architecture 305 C.1.3 Problems Existed in the John Neumann Model 307 C.1.4 The Goal of the Invention 307 C.2 Field of Invention 308 C.3 Detailed Description of the Invention 308 C.4 Claim 310
Index 313 About the Authors
Shuangbao (Paul) Wang is the inventor of a secure computer system. He is the recipient of Link Fellowship Award in advanced simulation and training. He holds four patents; three of them have been transferred into industry and put into produc- tion. One of his students appeared in Time Magazine for doing his class project which he commercialized and still pursues. In addition, one of his published papers ranked the first place in Science Direct’s TOP 25 Hottest Articles. His research was awarded the Best Invention Award in Entrepreneurship Week USA at Mason. More recently, he received two university Technology Transfer Awards. Dr. Wang has extensive experience in academia, industry, and public services. He has held many posts, including professor, director, CEO, CIO/CTO and ranking positions in public services. He is currently a professor at George Mason University. Dr. Wang served as the Chief Information and Technology Officer at National Bio- medical Research Foundation/Georgetown University Medical Center. Earlier, he was the director of the Institute of Information Science and Technology at Qingdao (ISTIQ) where he oversaw more than 120 faculty and staff, acquired 12 grants, won 18 academic awards and was the PI for over 15 grants/projects.
Robert S. Ledley istheinventorofCTscannerandisamemberoftheNational Academy of Science. He has numerous publications in Science and several books, and has hundreds of patents and grants. Dr. Ledley is the recipient of the National Medal of Technology that was awarded to him by President Clinton in 1997. He was admitted to the National Inventors Hall of Fame in 1990. Dr. Ledley has been the president of the National Biomedical Research Foundation since 1960. He is also a professor (emeritus) at Georgetown University. Dr. Ledley is the editor-in-chief of four international journals. He has testified before the House and was interviewed by the Smithsonian Institution.
Preface
This book provides the fundamentals of computer architecture and security. It covers a wide range of computer hardware, system software and data concepts from a security perspective. It is essential for computer and information security professio- nals to understand both hardware and software security solutions to thrive in the workplace. It features a careful, in-depth, and innovative introduction to modern computer systems and patent-pending technologies in computer security. In the past, computers were designed without security considerations. Later, firewalls were used to protect them from outside attacks. This textbook inte- grates security considerations into computer architecture in a way that it is immune from attacks. When necessary, the author creates simplified examples from patent-pending technologies that clearly explain architectural and imple- mentation features. This book is intended for graduate and undergraduate students, engineers, and researchers who are interested in secure computer architecture and systems. This book is essential for anyone who needs to understand, design or implement a secure computer system. Studying computer architecture from a security perspective is a new area. There are many textbooks about computer architecture and many others about computer security. However, textbooks introducing computer architecture with security as the main theme are rare. This book introduces not only how to secure computer compo- nents (Memory, I/O, network interfaces and CPU) but also how to secure the entire computer system. The book proposes a new model that changes the Neumann archi- tecture that has been the foundation of modern computers since 1945. The book includes the most recent patent-pending technology in computer architecture for security. It also incorporates experiences from the author’s recent award-winning teaching and research. This book also introduces the latest technologies, such as virtualization, cloud computing, Internet computing, ubiquitous computing, biocomputers and other advanced computer architectures, into the classroom in order to shorten the transi- tion time from student to employee. xviii Preface
This book has a unique style of presentation. It uses diagrams to explain important concepts. For many key elements, the book illustrates the actual digital circuits so that interested readers can actually build such circuits for testing purposes. The book can also be used as experiment material. ThebookalsocomeswithaWileyCompanion Website (wwwe.wiy.co lm/ go/ wang/comp_arch) that provides lecture notes, further readings and updates for stu- dents. It also provides resources for instructors as well. In addition, the website lists hundreds of security tools that can be used to test computers for security problems. Students taking courses with this book can master security solutions in all aspects of designing modern computer systems. It introduces how to secure memory, buses, I/O and CPU. Moreover, the book explains how to secure computer architecture so that modern computers can be built on the new architecture free of data breaches. The concept of computers as stand-alone machines is fading away. Computers are now interconnected and in many cases coordinated to accomplish one task. Most current computer architecture textbooks still focus on the single computer model without addressing any security issues. Computer Architecture and Security provides readers with all of the components the traditional textbooks have, but also the latest development of computer technology. As security is a concern for most people, this book addresses the security issues in depth in all aspects of computer systems. Acknowledgements
The authors would like to thank Dr. and Mrs. McQuivey for the thorough reviews and editions. Dr. Kyle Letimar provided tremendous help in editing and revising the book proposal. The authors would also like to acknowledge Ms. Anna Chen for her incredible help in preparing this manuscript.
1
Introduction to Computer Architecture and Security
A Computer is composed of a number of different components:
Hardware: Computer hardware processes information by executing instructions, storing data, moving data among input and output devices, and transmitting and receiving information to and from remote network locations. Software: Software consists of system software and application software or pro- grams. Operating Systems such as Windows, UNIX/Linux and Snow Leopard are system software. Word, Firefox browser and iTunes are examples of application software. Network: The network communication component is responsible for sending and receiving information and data through local area network or wireless connections. Data is the fundamental representation of information and facts but usually format- ted in a special way. All software is divided into two categories: data and pro- grams. Programs are a collection of instructions for manipulating data.
Figure 1.1 shows a view of a computer system from a user perspective. Here a computer system no longer looks like an onion as traditional textbooks used to represent. Instead, a network component (including hardware and software) is added as a highway for data flowing in and out of the computer system. Computer architecture is to study how to design computer systems. It includes all components: the central processing unit (CPU), computer memory and storage, input and output devices (I/O), and network components. Since the invention of the Internet, computer systems are no longer standalone machines. The traditional “computing” concept of the single machine model is
Computer Architecture and Security: Fundamentals of Designing Secure Computer Systems, First Edition. Shuangbao (Paul) Wang and Robert S. Ledley. Ó 2013 Higher Education Press. All rights reserved. Published 2013 by John Wiley & Sons Singapore Pte. Ltd. 2 Computer Architecture and Security
Figure 1.1 A conceptual diagram of a common computer system fading away. For most users, information exchange has taken an important role in everyday computer uses. As computer systems expose themselves over the Internet, the threat to computer systems has grown greater and greater. To protect a computer system (hardware, software, network, and data) from attacks, people have developed many counter- attack techniques such as firewalls, intrusion detection systems, user authentications, data encryptions and so on. Despite the numerous efforts to prevent attacks, the threat to computer systems is far from over. Computer compromises and data bleach are still very common. If you look back to those counter-attack techniques, most of the detection systems are based on passive techniques. They only work after attacks have taken place. A firewall by its name is a wall to prevent fire from spreading. On the other hand, it also likes a dam or levee to prevent flood. People can build a dam or levee high enough to protect against flood. However nobody can predict how high the water level will be. The 2005 New Orleans levee leak caused by Katrina is an example of this. In medicine, people spent billions of dollars to develop new drugs to cure illness. However ancient Chinese people study how to eat well and exercise well to prevent illness. This is the same as now the so-called prevention medicine. If we apply the same mechanism to computer systems, we draw the conclusion that we not only need to build firewalls, more importantly we need to develop computer systems that are immune from attacks. In early 2005, a US patent was filed to propose new technology that can prevent hackers from getting information stored in computer systems. The technology has drawn the attention of industry, academia, as well as government. Figure 1.2 shows a conceptual diagram of the proposed secured computer system. Note that in addition to the traditional hardware and software, the system added an additional layer. It is like a sandbox that “separates” the computer system from the outside world. In this book, we call it a virtual semi-conductor or semi “network Introduction to Computer Architecture and Security 3
Figure 1.2 A conceptual diagram of a secured computer system conductor.” It allows the computer operator to control information and data access so that hackers are no longer able to steal data from the computer system. We will discuss this in more detail in the following chapters. Computer Architecture and Security will teach you how to design secured com- puter systems. It includes information on how to secure central processing unit (CPU) memory, buses, input/output interfaces. Moreover, the book explains how to secure computer architecture as a whole so that modern computers can be built on the new architecture free of data breaches.
1.1 History of Computer Systems Computers originally mean to compute or to calculate. The earliest computing devices date back more than two thousand years. The abacus (second century BC) which was introduced in China is one of them. Blaise Pascal, a renowned French scientist and philosopher, invented a mechanical adding machine in 1645. Gottfried Leibniz invented the first calcu- lator in 1694. The multiplication could be performed by repeated turns of a handle, and by shifting the position of the carriage relative to the accumulator. In December 26, 1837, Charles Babbage proposed a calculating engine that is capable of solving mathematical problems including addition, subtraction, multi- plication, division, and finding the square root. Herman Hollerith, a German-American statistician and the founder of the com- pany that became IBM, developed a punched-card electric tabulating machine in 1889. The first program-controlled computing machine is the German machine Z3 which was developed in 1941. Mark-I, also known as IBM automatic sequence- controlled calculator, was developed by Howard Aiken at Harvard University in 1944. The Electronic Numerical Integrator and Calculator (ENIAC) was developed in May 1943. The machine was used to calculate bomb trajectories and to develop hydrogen bombs. It was not a stored-program machine, a key way to distinguish between earlier computing devices and modern computers. 4 Computer Architecture and Security
The final step toward developing a modern computer was characterized as follows: