ENGLISH

How Software Works ; The Magic Behind Encryption, CGI, Search Engines, and Other Everyday Technologies

Book information

Publisher
No Starch Press
Year
2015
ISBN
1593276664, 9781593276669
Language
english
Format
PDF
Filesize
7 MB (7555569 bytes)
Edition
1
Pages
216\216
Time added
2020-05-20 20:45:59

Description

We use software every day to perform all kinds of magical, powerful tasks. It's the force behind stunning CGI graphics, safe online shopping, and speedy Google searches. Software drives the modern world, but its inner workings remain a mystery to many. How Software Works explains how computers perform common-yet-amazing tasks that we take for granted every day. Inside you'll learn: –How data is encrypted –How passwords are used and protected –How computer graphics are created –How video is compressed for streaming and storage –How data is searched (and found) in huge databases –How programs can work together on the same problem without conflict –How data travels over the Internet How Software Works breaks down these processes with patient explanations and intuitive diagrams so that anyone can understand—no technical background is required, and you won't be reading through any code. In plain English, you'll examine the intricate logic behind the technologies you constantly use but never understood. If you've ever wondered what really goes on behind your computer screen, How Software Works will give you fascinating look into the software all around you. About the Author About the Technical Reviewer Brief Contents Contents in Detail Acknowledgments Introduction Who This Book Is For Topics Covered Behind the Magic Chapter 1: Encryption The Goal of Encryption Transposition: Same Data, Different Order Cipher Keys Attacking the Encryption Substitution: Replacing Data Varying the Substitution Pattern Key Expansion The Advanced Encryption Standard Binary Basics AES Encryption: The Big Picture Key Expansion in AES AES Encryption Rounds Block Chaining Why AES Is Secure Possible AES Attacks The Limits of Private-Key Encryption Chapter 2: Passwords Transforming a Password into a Number Properties of Good Hash Functions The MD5 Hash Function Encoding the Password Bitwise Operations MD5 Hashing Rounds Meeting the Criteria of a Good Hash Function Digital Signatures The Problem of Identity Collision Attacks Passwords in Authentication Systems The Dangers of Password Tables Hashing Passwords Dictionary Attacks Hash Tables Hash Chaining Iterative Hashing Salting Passwords Are Password Tables Safe? Password Storage Services A Final Thought Chapter 3: Web Security How Public-Key Cryptography Solves the Shared Key Problem Math Tools for Public-Key Cryptography Invertible Functions One-Way Functions Trapdoor Functions The RSA Encryption Method Creating the Keys Encrypting Data with RSA RSA Effectiveness RSA Use in the Real World RSA for Authentication Security on the Web: HTTPS Handshaking Transmitting Data Under HTTPS The Shared Key Problem Solved? Chapter 4: Movie CGI Software for Traditional Animation How Digital Images Work How Colors Are Defined How Software Makes Cel Animations From Cel Animation Software to Rendered 2D Graphics Software for 3D CGI How 3D Scenes Are Described The Virtual Camera Direct Lighting Global Illumination How Light Is Traced Full-Scene Anti-Aliasing Combining the Real and the Fake The Ideal of Movie-Quality Rendering Chapter 5: Game Graphics Hardware for Real-Time Graphics Why Games Don’t Ray Trace All Lines and No Curves Projection Without Ray Tracing Rendering Triangles The Painter’s Algorithm Depth Buffering Real-Time Lighting Shadows Ambient Light and Ambient Occlusion Texture Mapping Nearest-Neighbor Sampling Bilinear Filtering Mipmaps Trilinear Filtering Reflections Faking Curves Distant Impostors Bump Mapping Tessellation Anti-Aliasing in Real Time Supersampling Multisampling Post-Process Anti-Aliasing The Rendering Budget What’s Next in Game Graphics Chapter 6: Data Compression Run-Length Encoding Dictionary Compression The Basic Method Huffman Encoding Reorganizing Data for Better Compression Predictive Encoding Quantization JPEG Images A Different Way to Store Colors The Discrete Cosine Transformation The DCT for Two Dimensions Compressing the Results JPEG Picture Quality Compressing High-Definition Video Temporal Redundancy MPEG-2 Video Compression Video Quality with Temporal Compression The Present and Future of Video Compression Chapter 7: Search Defining the Search Problem Putting Data in Order Selection Sort Quicksort Binary Search Indexing Hashing Searching the Web Ranking Results Using the Index Effectively What’s Next for Web Search Chapter 8: Concurrency Why Concurrency Is Needed Performance Multiuser Environments Multitasking How Concurrency Can Fail Making Concurrency Safe Read-Only Data Transaction-Based Processing Semaphores The Problem of Indefinite Waits Orderly Queues Starvation from Circular Waits Performance Issues of Semaphores What’s Next for Concurrency Chapter 9: Map Routes What a Map Looks Like to Software Best-First Search Reusing Prior Search Results Finding All the Best Routes at Once Floyd’s Algorithm Storing Route Directions The Future of Routing Index

Similar books