|
|
|
|
|
by theophrastus
2301 days ago
|
|
My point of view on this is from a career as a protein x-ray crystallographer, not a mathematician nor computer scientist. I've watched countless tiny crystal dishes, the vast majority of which produce no useful crystals. And while it seems frustratingly random, (especially when faced with months and years of failure), in retrospect from a successful series there are always conditions which likely make causative sense: changes in temperature, stocks of substituent additives, shifts of pH due to carbon dioxide in the air, vibration (or lack thereof) from nearby construction or robotic systems, amount of pollen or air pollution to add nucleation sites. Some crystals will only form along the edges of the crystal dishes; perhaps because there's some complementary dimensions of the molecular surface there. It's a rich list of possibilities, but all would speak against this being as 'random' as say, the exact time of the emergence of an x-ray photon from our source. Nonetheless it's a very creative use of a lot of otherwise non-useful data from vast arrays of robot observed crystallization dishes. |
|
Because they’re running sha512 on the crystal data, the output will always look random. But if the crystals have a bias in their preferred growth patterns, especially if there’s a non-trivial probability that they don’t grow, knowing that may be an attack vector, you can use that information to simulate the process and possibly produce the same output.
“A raw binary sequence was then generated by assigning 5 bytes per crystal pixel based on size, orientation, and color, with crystals ordered from top left to bottom right in the vial region (see Supplemental Information for details). These bytes were concatenated with those of adjacent crystal pixels and of subsequent crystals to generate a long binary sequence. This sequence was then split into sections of 64 bytes, and the sha512 algorithm was applied to each of these sections. The resulting binary sequences were concatenated to form a larger-output binary sequence.”
The sha512 is the reason the output is uniform, but if I were doing this, I’d throw a time stamp and maybe some calls to drand48() or something into the pre-sha mix, to guarantee that the input can’t be easily replicated.