John Savard's personal site on computing history, floating-point formats, punched cards, slide rules, dice, and pencil-and-paper ciphers.
HN commenters link it as a reference for topics like slide rules and unusual dice, including a page on a 200-sided die.
IEEE 754 basically had three major proposals that were considered for standardization. There was the "KCS draft" (Kahan, Coonen, Stone), which was the draft implemented for the x87 coprocessor. There was DEC's counter proposal (aka the PS draft, for Payne and Strecker), and HP's counter proposal (aka, the FW draft for Fraley and Walther). Ultimately, it was the KCS draft that won out and become what we now know as IEEE 754.
One of the striking things, though, is just how radically different KCS was. By the time IEEE 754 forms, there is a basic commonality of how floating-point numbers work. Most systems have a single-precision and double-precision form, and many have an additional extended-precision form. These formats are usually radix-2, with a sign bit, a biased exponent, and an integer mantissa, and several implementations had hit on the implicit integer bit representation. (See http://www.quadibloc.com/comp/cp0201.htm for a tour of several pre-IEEE 754 floating-point formats). What KCS did that was really new was add denormals, and this was very controversial. I also think that support for infinities was introduced with KCS, although there were more precedents for the existence of NaN-like values. I'm also pretty sure that sticky bits as opposed to trapping for exceptions was considered innovative. (See, e.g., https://ethw-images.s3.us-east-va.perf.cloud.ovh.us/ieee/f/fb/Analysis_of_Proposals_Cody.pdf for a discussion of the differences between the early drafts.)
Now,…
In addition to that list, there are the physical issues of film and optical devices. CGI can just work around them, but with film and lenses, physics still gets yah. For reference (http://www.quadibloc.com/science/opt0505.htm) the first order optical issues with all systems are:
> Spherical Aberration: this is the aberration affecting rays from a point on the optical axis; because rays from this point going out in different directions pass through different parts of the lens, then, if the lens is spherical, or otherwise not the exact shape needed to bring them all to a focus, then these rays will not all be focused at the same point on the other side of the lens. Essentially, lenses are spherical, they need to be parabolic but that is very expensive.
> Coma: this aberration affects rays from points off the optical axis. If spherical aberration is eliminated, different parts of the lens bring rays from the axis to the same focus. But the place where the image of an off-axis point is formed may still change when different parts of the lens are considered. Essentially, your lens may not be flat compared to the film.
> Astigmatism: this is another aberration affecting rays from a point off the optical axis. These rays, as they head through the lens to the point in the image where they will be focused, pass through a lens that is, from their perspective, tilted. Even if neither spherical aberration nor coma prevents them from coming to a sharp focus, if we consider the rays of…
http://homepage.cs.uiowa.edu/~jones/cards/history.html
"The use of punched cards in the Jacquard loom influenced Charles Babbage, who decided to use punched cards to control the sequence of computations in his proposed analytical engine. Unlike Hollerith's cards of 50 years later, which were handled in decks like playing cards, Babbage's punched cards were to be strung together like Jaquard's. Despite this and the fact that he never actually built an analytical engine, Babbage's proposed use of cards played a crucial role in later years, providing a precident that prevented Hollerith's company (and its successors) from claiming patent rights on the very idea of storing data on punched cards."
http://www.adbranch.com/how-ibm-helped-automate-the-nazi-death-machine/
http://www.scrapbookpages.com/AuschwitzScrapbook/History/Articles/IBMpunchcards.html
"Auschwitz historians were originally convinced that there were no machines at Auschwitz, that all the prisoner documents were processed at a remote location, primarily because they could find no trace of the equipment in the area. They even speculated that the stamped forms from Auschwitz III were actually punched at the massive Hollerith service at Mauthausen concentration camp. Indeed, even the Farben Hollerith documents had been identified some time ago at Auschwitz, but were not understood as IBM printouts. That is, not until the Hollerith Büro itself was discovered. Archivists only found the Büro because it was listed in…
I believe that small changes like this can make ciphers more secure in practice but are usually best avoided. The are several factors involved.
* Modern ciphers are carefully designed and random changes to the algorithm may weaken the cipher, by say shrinking the effective key space or leaking internal state information due to timing attacks. Without careful cryptographic analysis by experts, motivated to study the new changes over a period of months or years, it may be hard to anticipate the overall effect of the changes. This in an argument in favor of adopting the existing studied systems and implementations.
* Some types of changes can be safely made and may be worthwhile. For example, superencipherment by encrypting the output of one cipher with a different independent system and an independent second key is almost certainly going to make breaking the system harder. This, however, reduces the performance of the encryption and requires careful implementation for perhaps no gain over simply choosing stronger parameters (for example, rounds and key length) with a single system. Examples of superencipherment that have been successful include the system used by soviet agents known as the VIC cipher. Apparently, this cipher resisted attempts at decryption. (The VIC cipher combined two simpler ciphers a franctionated substitution followed by an interrupted columnar transposition. There was a nice explanation of this cipher in Scientific American that I read in the mid…
Modern day vaccum tube hobby take on 8 bit ascii from unabstracted signal procesing point of view (pre-type punning):
1920's-1950's were initially reusing prior experience/knowledge of each punch card card hole as an individual electric on/off switch [1],
Electronic relays required 4 electrical inputs [2](flow control/reset done per 'end of current row hole punches)
10 holes per line -> 3 relays!; 8 holes per line -> 2 relays, where each relay deals with 4 bits.
Switching away from physical punch card media to electric/audio, 7holes per line, with extra bit for indicating 'done' with current set of row holes.
8 holes per line needed 'software support' or make use of the hardware for 3rd relay (formerly need for 10 holes in a line)
Numbers faster because with 6 bits, don't need 3rd relay to do flow control.
Wonder if the pairing of binary sequence with graphic glyp could be considered to be the origin of the closure concept.
modern day abstractions based on '4 wire relay' concept:
tcp/ip twisted pair
usb prior to 3.2 vs. usb 3.2 variable lane width
epci fixed lane vs. latest epci spec with variable width lane
-----
[1] : http://quadibloc.com/comp/cardint.htm
[2] : https://en.wikipedia.org/wiki/Vacuum_tube
From what I understand, the Feb 23rd SHA-1 attack was possible because they figured out how to get the internal state (160 bits or 5 words of 32 bits) to match from two separate pieces of data. After that, additional data could be appended to the first two pieces as long as it was identical.
The internal state would play back the same sequence from there on, just like two random number generators starting from the same seed.
Here is a comparison of internal state sizes:
https://en.wikipedia.org/wiki/SHA-0#Comparison_of_SHA_functions
SHA-256 is susceptible to this same flaw, it would just take longer because it has about about 128 bits of security instead of less than 80 for SHA-1. It looks like only SHA-3 really "gets it" with a 1600 bit state size.
After all of the effort put into making highly pseudo-random hash functions, it's a wonder that the state size was only the size of the hash. By comparison, Mersenne Twister's state size is 19937 bits (624 words of 32 bits minus 31 bits):
http://www.quadibloc.com/crypto/co4814.htm
Does anyone know why hash algorithms keep using such small state sizes, leaving us vulnerable to this same issue?