<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"></div><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small">I have made significant changes and extensions to the UDF specification. The old draft is in the links below but I am about to replace it with a very much more powerful scheme. UDF began as an attempt to bring PGP fingerprints into the 21st century. I have since extended the scheme to cover nonces, encryption keys, key shares and commitments.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The question I need to answer right now is whether to group UDF values in groups of 4, 5 or 5+3 alternating.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The following fingerprints all represent the text/plain string "UDF Data Value":</div><div class="gmail_default" style="font-size:small"><pre class="gmail-newpage" style="font-size:13.3333px;margin-top:0px;margin-bottom:0px;break-before:page;color:rgb(0,0,0)"><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page">MDDK7-N6A72-7AJZN-OSTRX-XKS7D (5)</pre>
</pre><pre class="gmail-newpage" style="font-size:13.3333px;margin-top:0px;margin-bottom:0px;break-before:page;color:rgb(0,0,0)">MDDK-7N6A-727A-JZNO-STRX-XKS7 (4)</pre></div><div class="gmail_default"><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><pre class="gmail-newpage" style="color:rgb(0,0,0);font-size:13.3333px;margin-top:0px;margin-bottom:0px;break-before:page"><br></pre><pre class="gmail-newpage" style="color:rgb(0,0,0);font-size:13.3333px;margin-top:0px;margin-bottom:0px;break-before:page">MDDK7-N6A-727AJ-ZNO-STRXX-KS7 (5/3)</pre><pre class="gmail-newpage" style="color:rgb(0,0,0);font-size:13.3333px;margin-top:0px;margin-bottom:0px;break-before:page"><br></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">The comparison is not quite fair in that the 5 group version provides 125 bits of precision while the other two provide only 120. But 120 bits is much easier to code because it is a multiple of 8 bits.</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">Adding another 20 bits to the 4 and 5/3 character version gives us a work factor of 132 bits, thus meeting the 128 bit work factor we like to work to:</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><pre class="gmail-newpage" style="font-size:13.3333px;margin-top:0px;margin-bottom:0px;break-before:page;color:rgb(0,0,0)">MDDK-7N6A-727A-JZNO-STRX-XKS7-DJAF</pre>
<pre class="gmail-newpage" style="color:rgb(0,0,0);font-size:13.3333px;margin-top:0px;margin-bottom:0px;break-before:page">MDDK7-N6A-727AJ-ZNO-STRXX-KS7-DJAF</pre><pre class="gmail-newpage" style="color:rgb(0,0,0);font-size:13.3333px;margin-top:0px;margin-bottom:0px;break-before:page"><br></pre></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">This is one of those choices that you only really get one go at. The minute I acquire a user is the minute I can't change the architecture. </span></font></pre><br><font face="arial, helvetica, sans-serif">The 8 bit clean groupings are going to be easier to code. The 5 bit groupings are likely to be more robust in use.</font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><br></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">One of the new UDF types is the Encrypted Authenticated Resource Locator. I am looking for backers to see if we could use this to fix filing of expenses, invoices, etc. This is an idea that I proposed over 20 years ago and was told it was stupid because there is no business model. Well I have yet to see a better way put into practice. I have full prior art disclosures on this going back a decade so nobody even dream of perjuring yourselves to the USPTO like so many other bastards have in the past.</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">So lets imagine we are on a business trip. We stay at a Hilton, we get a drink at Starbucks, etc. and when we get home we have a pile of receipts that we have to remember to turn in.</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">What if each of those receipts had a QR code that linked to an encrypted version of the receipt? What if we didn't need any PKI or even public key to decrypt it? What if this could be the first step on the road to finally getting rid of emailed invoices, tax forms, etc. etc.?</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">[Yes, can also do it over near field communication and we could integrate the payment mechanism. Got the specs for that as well.]</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">So I am going to need some people/governments to invest in this to realize the full potential. I know that. I also know that this is one of those schemes that only works as public goods if everyone plays the same game. So if people want this to happen, it needs a band leader. Which is where my business model comes in.</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">Lets start off with a random value</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><pre class="gmail-newpage" style="font-size:13.3333px;margin-top:0px;margin-bottom:0px;break-before:page;color:rgb(0,0,0)">ECDV6-7AY27-MCZZG-L2ZMG-3QD3R</pre>
</pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">Now lets turn that into a URL:</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="monospace, monospace"><span style="white-space:normal">UDF://<a href="http://example.com/">example.com/</a></span>ECDV6-7AY27-MCZZG-L2ZMG-3QD3</font>R</pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><br></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">Now we take the electronic versions of the receipts. We can have the OMG XML invoice, a PDF, etc. as many as are useful. These are distinguished by content type so we can sort them out using standard HTTP content negotiation.</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">We encrypt each of out documents using DARE Message format using ECDV6-- as the master key. Each document has a separate nonce value in the KDF function used to obtain encryption keys and IVs</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">We calculate the UDF fingerprint (SHA2-512) of the random value and express it with twice the precision.</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><pre class="gmail-newpage" style="font-size:13.3333px;margin-top:0px;margin-bottom:0px;break-before:page;color:rgb(0,0,0)">SCFIN-CQGDR-KG47R-7OVPT-TCHZ7-XKS7D-JAFXI-6OZSL-U2VOA-TZQ6J</pre>
</pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">We post the docs to the web site <a href="http://example.com">example.com</a> as </span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><br></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="monospace, monospace"><span style="white-space:normal"><a href="https://example.com/.well-known/earl/">https://example.com/.well-known/earl/</a></span></font>SCFIN-CQGDR-KG47R-7OVPT-TCHZ7-XKS7D-JAFXI-6OZSL-U2VOA-TZQ6J</pre></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">[If we have multiple content types, configure Web service appropriately]</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">So when I scan the QR code, the app can perform the same conversion and retrieve the encrypted, authenticated document and then decrypt it with the secret key.</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">[I have elided many of the technical details here that avoid crypto failures]</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">So to make this happen in real life, what I plan to do is:</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal"><br></span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">1) Finish the revisions to the spec</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">2) Release the reference code (C#) enabling the non QR code version</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">3) Make a You Tube video describing the scheme</span></font></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><br></pre><pre class="gmail-newpage" style="margin-top:0px;margin-bottom:0px;break-before:page"><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">6) Profit?</span></font></pre></pre></pre><pre class="gmail-newpage" style="font-size:13.3333px;margin-top:0px;margin-bottom:0px;break-before:page;color:rgb(0,0,0)"></pre></div></div></div></div></div></div></div>