verisimilitude: So, I've started work on my general SHA Ada library, and I expect to perhaps have part of it in a presentable state for 2020-04-28; what are you working on that may be ready within the month? Also, spyked, I read the ``Again on ``general-purpose'' tools'' and found it interesting, along with its brother article; in particular, the section on ``syntactic meaning'' brought to mind my ideas for a programming system that lacks a preference
verisimilitude: for symbols in a character set.
verisimilitude: I thought about going into detail in a comment, but didn't figure it would be appreciated if I elaborated on my ideas in relation and linked to my website for further details, so I write it here in less detail.
spyked: verisimilitude: thanks for reading! sure, I'd appreciate any comments or links to articles on the subj, here or somewhere else
asciilifeform: http://logs.nosuchlabs.com/log/asciilifeform/2020-04-27#1010680 << this mostly. proggy written, and turned out almost as painful as barrett ; nao typesetting the (handwritten) proof of correctness for it .
snsabot: Logged on 2020-04-27 01:35:39 verisimilitude: So, I've started work on my general SHA Ada library, and I expect to perhaps have part of it in a presentable state for 2020-04-28; what are you working on that may be ready within the month? Also, spyked, I read the ``Again on ``general-purpose'' tools'' and found it interesting, along with its brother article; in particular, the section on ``syntactic meaning'' brought to mind my ideas for a programming system that lacks a preference
snsabot: Logged on 2020-04-20 11:47:10 asciilifeform: speaking of adaisms, i have ch21's modular inverter written. nao grinding out the proofs for it, and the human text..
asciilifeform: all it is, is modular multiplicative inverse, i.e. in constant spacetime, for given n,m find i where n*i === 1 mod m .
asciilifeform: among other places , is needed in rsa key gen .
asciilifeform: ( also used in bitcoinism's ecc, as illustrated by jfw )
asciilifeform: as with barrett earlier, none of the published classical algos were usable as-found
shinohai: *sigh* freenode weather
asciilifeform: finally, ~3y after starting series, can generate rsa keys...
asciilifeform: !w poll
watchglass: Polling 11 nodes...
watchglass: 205.134.172.6:8333 : (172-6.core.ai.net) Alive: (0.022s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=627871
watchglass: 205.134.172.4:8333 : (172-4.core.ai.net) Alive: (0.083s) V=70001 (/therealbitcoin.org:0.7.0.1/) Jumpers=0x1 (TRB-Compat.) Blocks=627871
watchglass: 108.31.170.3:8333 : (pool-108-31-170-3.washdc.fios.verizon.net) Alive: (0.111s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=627871 (Operator: asciilifeform)
watchglass: 205.134.172.26:8333 : Alive: (0.081s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Return Addr=0.0.0.0:8333 Blocks=627869
watchglass: 205.134.172.27:8333 : Alive: (0.144s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=627871 (Operator: asciilifeform)
watchglass: 192.151.158.26:8333 : Alive: (0.146s) V=70001 (/therealbitcoin.org:0.7.0.1/) Jumpers=0x1 (TRB-Compat.) Blocks=623623
watchglass: 208.94.240.42:8333 : Alive: (0.167s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=627871
watchglass: 143.202.160.10:8333 : Alive: (0.283s) V=70001 (/therealbitcoin.org:0.7.0.1/) Jumpers=0x1 (TRB-Compat.) Blocks=627871
watchglass: 213.109.238.156:8333 : Alive: (0.345s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=627871
watchglass: 188.121.168.69:8333 : (rev-188-121-168-69.radiolan.sk) Alive: (0.378s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=627871
watchglass: 103.36.92.112:8333 : (terebe.ns01.net) Alive: (0.574s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=627871
asciilifeform: in other lulz, postage moscow -> washingtonistan nao faster than lulazon inside usa .
asciilifeform: 6d vs. 2-3w.
asciilifeform: ( on top of this : ~same~ b00k -- ~5x cheaper . )
Apocalyptic: indeed quite lulzy
Apocalyptic: asciilifeform, looking forward to read ch21
asciilifeform: why ty Apocalyptic . didja eat 1-20 already ?
Apocalyptic: eaten in the proper sense probably up to 5/6 only
asciilifeform: Apocalyptic: any sticking points ?
Apocalyptic: none that I remember, I simply put it on the backburner but nonetheless skimmed the rest. Barrett's also caught my attention as I never encountered it before
Apocalyptic: *algo
asciilifeform: Apocalyptic: the likely reason you haven't heard of it, is that most traditional rsatrons use montgomery's. which dun work on even #s, and this is considered acceptable usually in single-purpose rsa proggy. but doesn't cut in in general-purpose numeric system .
asciilifeform: see this re subj .
asciilifeform: the interesting bit is that the 2 algos are ~evenly matched re performance in practice . and proof is similarly tricky in both .
asciilifeform: so i've actually nfi montgomery is as popular as it is, aside from folx blindly parroting one another .
asciilifeform: *nfi why
asciilifeform: i had similar difficulty w/ modular inverse : most of the classical algos (e.g. penck's algo in knuth vol.2 ) presume an odd modulus always
asciilifeform: i refuse to bake any such presumptions into ffa .
asciilifeform: ( and in particular , rsa keygen requires working with an even modulus, cuz (p - 1)(q - 1) is, unsurprisingly , even )
asciilifeform: afaik all old rsatrons used euclid's algo for the m-even case. i.e. with division. which cannot be constant-timespaced .
asciilifeform: what i ended up with, was a modified variant of vanstone's (orig. penck's) that computes full extended gcd in const. spacetime.
asciilifeform: ( with only add/subtract/shift, just like my variant of stein's ordinary gcd . )
asciilifeform: ( to be painfully pedantic, this aint strictly troo -- euclid's ~could~ be written w/ 2*bitness divisions. but then would be as slow as non-barrettian mod-exp. )
snsabot: Logged on 2020-04-27 13:51:41 asciilifeform: afaik all old rsatrons used euclid's algo for the m-even case. i.e. with division. which cannot be constant-timespaced .
asciilifeform: at any rate, this piece is 100% done, the vpatch -- baked. nao needs the human text .
ben_vulpes: buenas noches, asciilifeform. i'm considering running some Ada code in a "real-time" environment; one where i don't have to worry about the kernel fucking off to massage the NIC for arbitrary periods of time. i'm inclined to use Ada, and would like to solicit your input on going down the "bare metal ada" rabbit hole. is something in the vein of
ben_vulpes: https://stackoverflow.com/questions/56721890/setting-up-a-bare-metal-x86-ada-toolchain reasonable? or should i just write everything in C and use RTAI to make my life easier
asciilifeform: ohai ben_vulpes . ave1 baked a working example .
asciilifeform: for x64.
asciilifeform: i have a yet-unpublished one for mips32
asciilifeform: ( based on his, but is quite specific to pic32mz processor )
asciilifeform: my ffa plan includes eventual port to that machine, for pocket-sized rsatronics.
asciilifeform: i also have a yet-incomplete msdos port, with similar aim.
asciilifeform: ben_vulpes: if your proggy can be written w/out using heapism, it'll work w/ ave1's .
ben_vulpes: how are {version of the library with no OS support} and {one withe 64-bit arm support} mutually exclusive?
asciilifeform: afaik they are not. but you'll need to provide some asm for i/o in either case
asciilifeform: see ave1's example for x64
asciilifeform: ben_vulpes: care to say moar re what sorta application ?
ben_vulpes: forgive the innumeracy, but what is the upside of no-heapism outside of crypto?
asciilifeform: that you don't need an allocator
asciilifeform: cuz if you do, you will 1) have to write one 2) put up with the fact that it can't allocate in O(1) or alternatively 3) can't deallocate in O(1)
asciilifeform: for realtimeism, 2/3 is a killer
ben_vulpes: naturlich
ben_vulpes: do the other niceties (scheduler, for one) require heap?
asciilifeform: afaik scheduler/tasks does not, per se
asciilifeform: for that matter most of ada does not assume existence of heap. e.g. ffa runs w/ heap disabled .
asciilifeform: tbf i don't miss the heap at all.
ben_vulpes: http://logs.nosuchlabs.com/log/asciilifeform/2020-04-27#1010742 << eat udp packets, write to serial ports
snsabot: Logged on 2020-04-27 22:59:29 asciilifeform: ben_vulpes: care to say moar re what sorta application ?
asciilifeform: ben_vulpes: you'll need to write some magick to init & drive the nick
asciilifeform: it's a known headache if you haven't already discovered .
snsabot: (trilema) 2019-05-30 asciilifeform: phf: i once sank good bit of time into attempt to bring up the ubiquitous 'crab nic' (realtek gb) from asm. broke teeth, it needs a working interrupt stack to run (i.e. 'spittoon in 1 strand', need entire os) . since then, found the 'seekrit' datashit, theoretically could do it, but not had time.
ben_vulpes: this line of thought is what brought me to RTAI/Xenomai; that and their preexisting incorporation into buildroot. i have but one life etc
asciilifeform: if yer system runs a linux, it won't be realtime. (i tried various 'rt' patches , for machining application, it was crock of shit)
asciilifeform: when you said 'real time', i assumed already arrived at this conclusion, i.e. ready to write a basic machine init, i/o stack etc
ben_vulpes: mm, no see previous 'innumeracy' comment.
asciilifeform: the basics aint in fact very hard on pc. here for instance is simple demo .
snsabot: (trilema) 2018-07-06 asciilifeform: ok here goes, ftr : http://loper-os.org/pub/x86-64-toystore-os.tar.gz >> sha512==e292a6d4296bc3cc63d2bc78bb7def807f7c4e9f8e630b292afec00b08c1fc2f8eeff5d074560804828ee7aee8ab5e43e698436c203c990d994863882e51446a
asciilifeform: nic is a bitch tho.
asciilifeform: ben_vulpes: 1st step is to determine how 'hard real time' is yer realtime. e.g. do you need to generate waveforms to 1% accuracy using empty loops ?
asciilifeform: ... service a signal in <1ms 100% of the time ?
ben_vulpes: no, in the absence of counsel to the contrary, i think i'd prefer to rely on eg 'Pololu Maestro' for that sort of work
asciilifeform: w/out knowing something about your problem domain, i cannot say whether you can get away with a cut-down linux + gnat targeting same, or need to write mini 'os'
asciilifeform: fwiw asciilifeform's most 'hard real time' piece was FG. and there i cut out the von neumann machine entirely and went w/ fpga.
ben_vulpes: sub ms is not even a problem; i am more interested in 'can eat udp packets, verify sigs and act on contents without disappearing for a half second to service dma'
asciilifeform: ben_vulpes: if yer verifying sigs in realtime with something other than ffa (or own proggy written w/ same algos) and enemy has access to any evidence of operation lag time, yer key will be factored.
ben_vulpes: where dma is "whatever strange it must"
asciilifeform: why do you think i spent 3+y writing it.
ben_vulpes: yes yes
asciilifeform: orig aim specifically was 'eat udp packets w/ rsaolade'
ben_vulpes: asciilifeform must have forgotten that i was once a human
asciilifeform: to be pedantic, can ~verify~ w/whatever you like , if yer ~generating~ sigs...
asciilifeform: lol
ben_vulpes: read, wrote...
asciilifeform: ben_vulpes: i assumed you slept in merlin's cave, is all, lol
ben_vulpes: ben_vulpes, sank; republic, shattered
ben_vulpes: but enough maudlinnery, i'm not here for the feels
asciilifeform: ben_vulpes: ftr asciilifeform was drummed out a while before 'shattered'
ben_vulpes: literally dgaf
asciilifeform: at any rate, sounds like ben_vulpes might be baking something quite similar to what's on asciilifeform's chalkboard.
ben_vulpes: anyways, upstack, some subset of nodes must decrypt, but all must verify
asciilifeform: you'll want to pick a nic and get the datashit, and write basic init for it. interrupt handlers are pretty easy to adaize, there are existing provisions for it.
asciilifeform: ada scheduler means you don't in fact need the linux kernel's
ben_vulpes: i'm not convinced yet (innumeracy); the combination of commodity hardware and relaxed timing is compelling
asciilifeform: if you don't need Gb/s throughput, or realtime for that matter at all, can work w/ linux + asciilifeform's ada-udp .
ben_vulpes: for the near term, tens of ms are acceptable. i'm not driving a mill body or anything.
asciilifeform: at the very least can start there.
asciilifeform: i wrote that lib for specifically this application, btw.
ben_vulpes: did you abandon the esp32?
asciilifeform: i did. was unimpressed w/ the availability , and with the actual signal range .
asciilifeform: imho this is more promising direction re radio for subj .
snsabot: Logged on 2019-11-18 17:16:03 asciilifeform: superkuh: re: mesh nets, so happens that i've dug into the subj, but w/out publishable results just yet.
ben_vulpes: classic thread!
asciilifeform: roughly speaking, 'uwb' over 0-30Mhz .
asciilifeform: 'not caught -- not thief'.
ben_vulpes: i'll be satisfied with hard connections.
asciilifeform: linked udp lib + gnat is errything afaik you need to start experimenting (on ordinary linux, that is)
ben_vulpes: i honestly don't know how to make the call on the necessity of real-time.
asciilifeform: simplest way is to actually try.
ben_vulpes: on the other hand, a hostile node can take everyone else on the LAN down with eg ping floods. this is a classic "threat modeling" problem, i realize now.
asciilifeform: and so happens that i've already posted world's simplest rsatron. which, also happens, beats koch's speedwise even w/out bvt's asmism patches.
asciilifeform: ( spoiler : avoiding branches actually wins on past decade+ of x64 irons )
asciilifeform: ben_vulpes: flooding goes away if you 1) don't relay what wasn't signed w/ known sig 2) don't relay anyffin w/ timestamp (covered by sig) > x ticks ago 3) don't relay anyffin that was relayed in past M min (hash table) .
asciilifeform spent many yrs thinking about this, and other assoc. headaches.
asciilifeform: ddosism similarly goes away if yer system is 100% ip addr - agnostic. i.e. you have e.g. /24 block of entry points, ddos is stuck spreading itself then b/w 256 ip
asciilifeform: ... because for so long as even 1 is reachable, yer in biz
asciilifeform: added bonus if yer entry points are spread across multiple pipes (and/or multiple physical locations)
ben_vulpes: doesn't this mean one is on the hook for a router in addition to everything else?
asciilifeform: no more so than usual
asciilifeform: key is that neither participant in 'conversation' ought to give a damn re originating ip of replies
asciilifeform: i.e. the exact opposite of the traditional countermeasure to ddos
asciilifeform: 'reply' is simply any incoming packet that passes sig verify, decrypts appropriately, and afterwards decodes correctly such that seen as 'reply' .
asciilifeform: timestamp & random 'nonce' you will want visible in plaintext, so as not to blow cpu cycles rsaing on replayed crud
ben_vulpes: what does the relaying, in this model? each node?
asciilifeform: ( principal attack on any such system is replay of valid packets )
asciilifeform: each node.
asciilifeform: ideal building block , is a box w/ 2 nic jacks, 1 eats gb/s from firehose (heathen net) and other emits only what passed 1+2+3 , to preconfig'd list of peers. ideally over a separate physical pipe indep. from the former's.
asciilifeform: ( and naturally in reverse. )
asciilifeform: optionally also ought to emit certain amt of garbage (on heathen end) to frustrate traffic analysis.
asciilifeform: garbage packets must have valid sigs, or otherwise will be distinguishable by 3rd party from actual payloads.
asciilifeform: ( it is not difficult to infer rsa pubkey from large body of valid ciphertexts )
asciilifeform: likewise, garbage packets can have any destinations (udp, recall) but at least some of the time ought to have same destination as actual payload-bearing packets.
asciilifeform: ideally heathen pipe will be kept saturated at all times.
ben_vulpes: i'm not convinced that i have a use for 'heathen pipe'
asciilifeform: well it's that or shortwave
asciilifeform: or how do you intend to link the nodes.
ben_vulpes: physically!
asciilifeform: i.e. run own fiber ? if can afford, wainot
ben_vulpes: fiber seems overkill
ben_vulpes: cat5 should be adequate.
asciilifeform: afaik cat5 gives you ~10km max
ben_vulpes: should be adequate.
asciilifeform: and i admit it aint clear to me what is the point of gossipnet inside 1 house..
ben_vulpes: me either!
asciilifeform: as prototype -- sure. but afaik whole point is to impose an independent routing topology on a hostile net.
ben_vulpes: one doesn't want just anyone suborning a hardport though.
asciilifeform: if enemy has access to your inhouse cat5, he can suborn w/ 220v .
asciilifeform: crypto, in that case, dun help.
asciilifeform: can suborn w/ a jerry can and match, for that matter.
ben_vulpes: not to give the game away, but yes i know
asciilifeform: so then why build 'maginot line'.
asciilifeform: gossipnet b/w your garage door opener and yer lamps controller is mp's archaetypical 'taking the rifle fishing' imho.
asciilifeform: rifle dun do any good as fishing pole.
asciilifeform: heavy, and rusts.