Computer Architecture. Secure communication and encryption.

Similar documents
Chapter 2 Logic Gates and Introduction to Computer Architecture

Computer Organization

3 - Introduction to Operating Systems

Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit.

Chapter 11 Security+ Guide to Network Security Fundamentals, Third Edition Basic Cryptography

Computer Architecture Lecture 3: ISA Tradeoffs. Prof. Onur Mutlu Carnegie Mellon University Spring 2013, 1/18/2013

Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat

PARCA Certified PACS Associate (CPAS) Requirements

Computers. Hardware. The Central Processing Unit (CPU) CMPT 125: Lecture 1: Understanding the Computer

SAS Data Set Encryption Options

Computer Architecture Lecture 2: Instruction Set Principles (Appendix A) Chih Wei Liu 劉 志 尉 National Chiao Tung University

İSTANBUL AYDIN UNIVERSITY

GPU File System Encryption Kartik Kulkarni and Eugene Linkov

Price/performance Modern Memory Hierarchy

Operating System Overview. Otto J. Anshus

Obj: Sec 1.0, to describe the relationship between hardware and software HW: Read p.2 9. Do Now: Name 3 parts of the computer.

Introduction to Virtual Machines

Example of Standard API

Computer System: User s View. Computer System Components: High Level View. Input. Output. Computer. Computer System: Motherboard Level

Mobile Operating Systems. Week I

Byte Ordering of Multibyte Data Items

Chapter 4 System Unit Components. Discovering Computers Your Interactive Guide to the Digital World

CPU Organization and Assembly Language

Operating Systems: Basic Concepts and History

Introduction to Microprocessors

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

SOSSE. Matthias Brüstle Simple Operating System for Smartcard Education. Kommunikationsnetz Franken e.v.

Operating System Structures

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Software: Systems and Application Software

Discovering Computers Living in a Digital World

Enabling Technologies for Distributed Computing

Machine Architecture and Number Systems. Major Computer Components. Schematic Diagram of a Computer. The CPU. The Bus. Main Memory.

Chapter 6. Inside the System Unit. What You Will Learn... Computers Are Your Future. What You Will Learn... Describing Hardware Performance

Computer Architectures

CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure

CS101 Lecture 11: Number Systems and Binary Numbers. Aaron Stevens 14 February 2011

SERVER CLUSTERING TECHNOLOGY & CONCEPT

ELEC 377. Operating Systems. Week 1 Class 3

ELE 356 Computer Engineering II. Section 1 Foundations Class 6 Architecture

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

CSE 265: System and Network Administration

Virtualization for Cloud Computing

Virtualization. Types of Interfaces

CHAPTER 7: The CPU and Memory

This Unit: Putting It All Together. CIS 501 Computer Architecture. Sources. What is Computer Architecture?

Full and Para Virtualization

For designers and engineers, Autodesk Product Design Suite Standard provides a foundational 3D design and drafting solution.

How To Write Portable Programs In C

Enabling Technologies for Distributed and Cloud Computing

Design Cycle for Microprocessors

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-12: ARM

System Requirements Table of contents

Virtuoso and Database Scalability

CHAPTER 4 MARIE: An Introduction to a Simple Computer

Benchmarking Large Scale Cloud Computing in Asia Pacific

Lecture 17: Virtual Memory II. Goals of virtual memory

HOB Remote Desktop VPN Secure access for remote workers and business partners to your enterprise network

The programming language C. sws1 1

Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage

Chapter 1: Introduction. What is an Operating System?

CHAPTER 2: HARDWARE BASICS: INSIDE THE BOX

Virtualization of Linux based computers: the Linux-VServer project

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Key Management (Distribution and Certification) (1)

Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:

Security. Friends and Enemies. Overview Plaintext Cryptography functions. Secret Key (DES) Symmetric Key

IOS110. Virtualization 5/27/2014 1

Network Security. HIT Shimrit Tzur-David

CS222: Systems Programming

Introducción. Diseño de sistemas digitales.1

Tech Tip: Understanding Server Memory Counters

Binary search tree with SIMD bandwidth optimization using SSE

1.1 Electronic Computers Then and Now

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems

Microsoft Office Outlook 2013: Part 1

Agenda. Enterprise Application Performance Factors. Current form of Enterprise Applications. Factors to Application Performance.

ELECTRONIC COMMERCE OBJECTIVE QUESTIONS

Ingar Fredriksen AVR Applications Manager. Tromsø August 12, 2005

System Requirements G E N E R A L S Y S T E M R E C O M M E N D A T I O N S

Operating Systems. Design and Implementation. Andrew S. Tanenbaum Melanie Rieback Arno Bakker. Vrije Universiteit Amsterdam

Outline. Operating Systems Design and Implementation. Chap 1 - Overview. What is an OS? 28/10/2014. Introduction

Multi-Threading Performance on Commodity Multi-Core Processors

CS 6290 I/O and Storage. Milos Prvulovic

Virtualizare sub Linux: avantaje si pericole. Dragos Manac

AlphaTrust PRONTO - Hardware Requirements

ORACLE EXADATA STORAGE SERVER X2-2

PENN. Social Sciences Computing a division of SAS Computing. SAS Computing SSC. File Security. John Marcotte Director of SSC.

Block encryption. CS-4920: Lecture 7 Secret key cryptography. Determining the plaintext ciphertext mapping. CS4920-Lecture 7 4/1/2015

LSN 2 Computer Processors

Generations of the computer. processors.

POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2)

what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored?

SecureDoc Disk Encryption Cryptographic Engine

Autodesk Revit 2016 Product Line System Requirements and Recommendations

(Refer Slide Time: 02:39)

Performance Characteristics of VMFS and RDM VMware ESX Server 3.0.1

Lesson 06: Basics of Software Development (W02D2

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

Transcription:

Computer Architecture. Secure communication and encryption. Eugeniy E. Mikhailov The College of William & Mary Lecture 28 Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 1 / 13

Computer architecture Type of hardware: biological, i.e. brain analog: electronic circuits, water flow, or even analog of sliding ruler digital computers Operations system does not define computer architecture MSDOS, Windows, Linux, BSD, MacOS, ios, Solaris, Android, UNIX: who cares? Though, historically several OSes are not hardware architecture agnostics for example MSDOS runs on x86 CPU only. Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 2 / 13

Loosely speaking type of CPU defines the architecture Most common CPU lines complex instruction set computer (SISC) x86 family (able to execute similar machine code at least for basic enough instructions, they do deviate at higher level commands. Search for extensions: MMX, SSE, etc): Intel (8086, 80286, 80486, 80486, 80586 (Pentium)... AMD some clones of early Intels (386,486) but then start to deviate, K6, Athlon, etc. VIA Cyrex First two manufactures are very common on a consumer market Z80, PDP, VAX Reduced instruction set computer (RISC) Sparc DEC Alpha, MIPS Atmel AVR ARM (think about your typical cell phone, Android, ipad, ipod, ebook reader) Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 3 / 13

Memory word Typical number size for an integer number in arithmetic operation and addressable memory 8 bit (can easily address 2 8 = 256 bytes) 16 bit (65536 bytes, i.e. 65kB) 32 bit (around 4 GB) 64 bit (1.8 10 19 ) Notice that more is not always better due to overhead. If all you need to add 2 digit numbers you do not want to spend time filling the rest of place holders with zeros. Additionally not every OS can support large word size and will run your hardware in truncated regime. (You need to by special Windows OS to benefit from 64bit or recompile you Linux kernel and programs). Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 4 / 13

Thing to look when shop for new CPU Before shopping decide what kind of typical problem you will solve: CPU intensive, memory intensive, can it be run in parallel, will you need to operate on batteries. Word size (see previous slide) CPU speed - how many FLOPS (floating-point operation per second). if you do accounting you might not need floating points operation at all CPU cache size (memory on board of CPU), this days there are several layers of cache number of cores (CPUs) on a chip power consumption i.e. how hot and how long does it run Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 5 / 13

Byte order Recall that now typical hardware unit is a byte which are assembled in machine words. But what about ordering (endianness) of this word. Big-endian: similar to human notation the most significant digits go first (to the left): 1423. Example more resent ARM processors Little-endian: list significant bytes go first. Well known example of this is x86 architecture. There is also middle-endian: when order swapped between 32 and 64 bit representation, or other less bits word to more bits word. When you exchange binary data between different architecture watch out for endianness. Luckily Matlab stores its binaries in one particular endianness independent on architecture but it my result slightly longer read/write times. Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 6 / 13

Specially design CPU Mars Science Laboratory - Curiosity rover CPU - RAD750 (radiation hardened) speed - 400 MIPS (Million instructions per second) memory: 256 kb of EEPROM 256 MB of DRAM 2 GB of flash memory Power source - 100 W (after around 14 years). Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 7 / 13

Secure communication You can try to exchange messages in secret, i.e. meet somewhere and make sure that no one listen to you. This is very realistic. So we will focus on encryption and decryption: making our message unreadable for strangers (encryption) and the way to convert it back to a readable form (decryption). Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 8 / 13

Ways to encrypt Very old method (traced back to ancient Greeks): substitution cypher For every letter use another letter. For example: with a z, b w, l e, m a, and t d matlab azdezw Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 9 / 13

Ways to encrypt Very old method (traced back to ancient Greeks): substitution cypher For every letter use another letter. For example: with a z, b w, l e, m a, and t d matlab azdezw Do not use in critical applications. To know why read about frequency analysis or read Arthur Conan Doyle The Adventure Of The Dancing Men (1903) Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 9 / 13

Things not to do Never assume that your deciphering algorithm will be unknown to enemies! If they find it you will have to change everything. Instead make it secret key dependent. If they now how your lock works they still need to find a lock. Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 10 / 13

Secret key algorithms Symmetric key algorithm. In simple way: decide on a key (string on symbols) and add them receptively to your message. Easy to break if you key is short but impossible if you key is longer the message and you never reuse this key. So called one-time pad method. Hard to use in practice since we need to meet to exchange the pad. Often very long keys are unpractical so a equivalent of a longer key is generated from a short one (this extreme oversimplification). Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 11 / 13

Public (shared) key cryptography Based on numbers theory and the fact that some operations take very long time to do. For example, number decomposition to the primes. You have public key and encrypt the message I have private key and can decipher this message. Example of use https protocol, also secure access to electronic mail servers (IMAP and POP) via TLS. Additional benefits with some protocol you can sign your message so there is the proof that it was signed by you and that it is not changed (based on hash functions). Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 12 / 13

Some security software Rule #1: Never, I repeat never use closed source security software PGP - Pretty Good Privacy GPG - GNU Privacy Guard Above program allow you to encrypt, decrypt with shared key your mail or files, sign text messages, make a checksum of binaries. Some software allows disk encryption but look for the Rule # 1 Eugeniy Mikhailov (W&M) Practical Computing Lecture 28 13 / 13