Overview 'How the machine works' notes

From XPUB & Lens-Based wiki

OVERVIEW 'HOW THE MACHINE WORKS' NOTES
________________________________________________________________________________________________________________________________
Taken info – processes – output result

Cpu – computer brain = blinding speed

Collasas machine – ultra secret decipher german secrets

Emiac machine – couldn’t make decisions based on logic

The emiac – as a business computer was the first / very few people understood the necessity of owning a computer

Decided to use the computer for predicting a the election for heisenower, to prove the capabilities of the computer

‘the transistor’

micro processor - multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and provides results as output.

Engelbardt came with the idea of apple 2 / the prototype for the first at home computer / worked with command line and hypertexts / sponsored by Xerox


Macintosh first easy to use computer

Each time you dial your telephone the dial system has to remember the dial, then guide your call through the maze of connections.

The computer has to remember which sequence is necessary for your call

Replacing old information is no longer of value by the new information he has just learned

He’s replacing the old obsolete information with what is new


There is a way of writing down information in a coded form. Take a peace of tape as long as it needs to be, divide it up by squares. And in each square will be a zero, a one or a space. These are memory locations, with patterns of bits.

There would be a little box on wheels driving over this tape, looking at the ones and zeros. The read/write head. This box would be able to either write or read. This box would have a logbook. What it does – one square at a time – is looking at this string of ones and zeros. Transforming this string into other ones and zeros. Eventually it will come to hault, it will be finished. Whats left is a logbook with the answer string.


a good checksum algorithm will usually output a significantly different value, even for small changes made to the input

if the computed checksum for the current data input matches the stored value of a previously computed checksum, there is a very high probability the data has not been accidentally altered or corrupted.

Checksum functions are related to hash functions, fingerprints, randomization functions, and cryptographic hash functions

(Checksums are used as cryptographic primitives in larger authentication algorithms)

Check digits and parity bits are special cases of checksums, appropriate for small blocks of data (such as Social Security numbers, bank account numbers, computer words, single bytes, etc.).



A simplistic example of FEC is to transmit each data bit 3 times, which is known as a (3,1) repetition code. Through a noisy channel, a receiver might see 8 versions of the output, see table below.

Triplet received Interpreted as 000 0 (error free) 001 0 010 0 100 0 111 1 (error free) 110 1 101 1 011 1

forward error correction (FEC) or channel coding[1] is a technique used for controlling errors in data transmission over unreliable or noisy communication channels.

A parity bit, or check bit is a bit added to the end of a string of binary code that indicates whether the number of bits in the string with the value one is even or odd. Parity bits are used as the simplest form of error detecting code.


Data integrity refers to maintaining and assuring the accuracy and consistency of data over its entire life-cycle,[1] and is a critical aspect to the design, implementation and usage of any system which stores, processes, or retrieves data.

Any unintended changes to data as the result of a storage, retrieval or processing operation, including malicious intent, unexpected hardware failure, and human error, is failure of data integrity.

Physical integrity - deals with challenges associated with correctly storing and fetching the data itself. Challenges with physical integrity may include electromechanical faults, design flaws, material fatigue, corrosion, power outages, natural disasters, acts of war and terrorism, and other special environmental hazards such as ionizing radiation, extreme temperatures, pressures and g-forces.

Logical integrity - concerned with the correctness or rationality of a piece of data, given a particular context. This includes topics such as referential integrity and entity integrity in a relational database or correctly ignoring impossible sensor data in robotic systems. These concerns involve making certain the data "makes sense" given its environment.

Data integrity is normally enforced in a database system by a series of integrity constraints or rules. Three types of integrity constraints are an inherent part of the relational data model: entity integrity, referential integrity and domain integrity: • Entity integrity concerns the concept of a primary key. Entity integrity is an integrity rule which states that every table must have a primary key and that the column or columns chosen to be the primary key should be unique and not null. • Referential integrity concerns the concept of a foreign key. The referential integrity rule states that any foreign-key value can only be in one of two states. The usual state of affairs is that the foreign-key value refers to a primary key value of some table in the database. Occasionally, and this will depend on the rules of the data owner, a foreign-key value can be null. In this case we are explicitly saying that either there is no relationship between the objects represented in the database or that this relationship is unknown. • Domain integrity specifies that all columns in a relational database must be declared upon a defined domain. The primary unit of data in the relational data model is the data item. Such data items are said to be non-decomposable or atomic. A domain is a set of values of the same type. Domains are therefore pools of values from which actual values appearing in the columns of a table are drawn. • User-defined integrity refers to a set of rules specified by a user, which do not belong to the entity, domain and referential integrity categories.



The ideal cryptographic hash function has four main properties: • it is easy to compute the hash value for any given message • it is infeasible to generate a message that has a given hash • it is infeasible to modify a message without changing the hash • it is infeasible to find two different messages with the same hash. The input data is often called the message, and the hash value is often called the message digest or simply the digest.

A cryptographic hash function must be able to withstand all known types of cryptanalytic attack. At a minimum, it must have the following properties: • Pre-image resistance Given a hash h it should be difficult to find any message m such that h = hash(m). This concept is related to that of one-way function. Functions that lack this property are vulnerable to preimage attacks. • Second pre-image resistance Given an input m1 it should be difficult to find another input m2 such that m1 ≠ m2 and hash(m1) = hash(m2). Functions that lack this property are vulnerable to second-preimage attacks. • Collision resistance It should be difficult to find two different messages m1 and m2 such that hash(m1) = hash(m2). Such a pair is called a cryptographic hash collision. This property is sometimes referred to as strong collision resistance. It requires a hash value at least twice as long as that required for preimage-resistance; otherwise collisions may be found by a birthday attack.

An illustration of the potential use of a cryptographic hash is as follows: Alice poses a tough math problem to Bob and claims she has solved it. Bob would like to try it himself, but would yet like to be sure that Alice is not bluffing. Therefore, Alice writes down her solution, computes its hash and tells Bob the hash value (whilst keeping the solution secret). Then, when Bob comes up with the solution himself a few days later, Alice can prove that she had the solution earlier by revealing it and having Bob hash it and check that it matches the hash value given to him before. (This is an example of a simple commitment scheme; in actual practice, Alice and Bob will often be computer programs, and the secret would be something less easily spoofed than a claimed puzzle solution).

keyed-hash message authentication code (HMAC) is a specific construction for calculating a message authentication code (MAC) involving a cryptographic hash function in combination with a secret cryptographic key


it may be used to simultaneously verify both the data integrity and the authentication of a message

"(HMAC_MD5("", "") = 0x74e6f7298a9c2d168935f58c001bad88 HMAC_SHA1("", "") = 0xfbdb1d1b18aa6c08324b7d64b71fb76370690e1d HMAC_SHA256("", "") = 0xb613679a0814d9ec772f95d778c35fc5ff1697c493715653c6c712144292c5ad "


In coding theory, Hamming(7,4) is a linear error-correcting code that encodes 4 bits of data into 7 bits by adding 3 parity bits.

The goal of Hamming codes is to create a set of parity bits that overlap such that a single-bit error (the bit is logically flipped in value) in a data bit or a parity bit can be detected and corrected. While multiple overlaps can be created, the general method is presented in Hamming codes.


The integer parameter m is referred to as the guard band of the error burst. The last symbol in a burst and the first symbol in the following burst are accordingly separated by m correct bits or more.

For example, imagine sending a packet containing all of the letters of the alphabet, A through Z. If the recipient's computer "opens" the packet and finds that the first letter in the sequence is "Q" and the last letter in the sequence is "R," that is a burst error. The "burst" of data in the packet is corrupt. Although in the example the first and last letters are defined as corrupt, that does not mean that every letter within the packet is damaged. Imagine that every other letter is as it should be; only position one, "A," and position 26, "Z," have been damaged. The number of correct bits of information between the damaged ends is called the guard band.