<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default"><p style="font-family:-apple-system,system-ui,&quot;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;box-sizing:border-box;margin-bottom:16px;color:rgb(36,41,46);font-size:14px;margin-top:0px">Hi All, </p><p style="font-family:-apple-system,system-ui,&quot;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;box-sizing:border-box;margin-bottom:16px;color:rgb(36,41,46);font-size:14px;margin-top:0px">I&#39;ve developed a method to check if a mnemonic is also valid when the words are put into reverse order (not the entropy), where a given 12 or 24-word mnemonic could be valid both in little endian and big endian format. I&#39;ve coined these &quot;Palindromic Mnemonics&quot;, but perhaps more user-friendly is &quot;reversible mnemonics.&quot;</p><p style="font-family:-apple-system,system-ui,&quot;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;box-sizing:border-box;margin-bottom:16px;margin-top:0px;color:rgb(36,41,46);font-size:14px"><span style="box-sizing:border-box;font-weight:600">Purpose:</span><br style="box-sizing:border-box">A checksum-valid reversible mnemonic allows two separate vaults to be connected to the same mnemonic string of words, where all a users must do is enter the words in reverse order (the last word becomes first, second to last becomes second, and so on) to access the secondary (reversed words) vault. This utility could provide multiple use-cases, including related to combinations with passphrases and plausible deniability, as well as conveniences for those wishing to use a separate vault tied to the same string of words.</p><p style="font-family:-apple-system,system-ui,&quot;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;box-sizing:border-box;margin-bottom:16px;margin-top:0px;color:rgb(36,41,46);font-size:14px"><span style="box-sizing:border-box;font-weight:600">Security:</span><br style="box-sizing:border-box">For any randomly generated 12-word mnemonic (128-bits of security) the chances of it also being reversible are 1/16 (I believe), as a total of 4 bit positions must be identical (4 bits from the normal mnemonic and another 4 bits from the reversed string must match). For a 24-word mnemonic, those values increase to 8 bits which need to match 8 bits from the reversed string, leading to about 1 in every 256 mnemonics also being reversible. While the message space of valid reversible mnemonics should be 2^<span style="box-sizing:border-box">124 for 12 words, that search must still be conducted over a field of 2</span><span style="box-sizing:border-box;font-weight:600">^</span>128, as the hash-derived checksum values otherwise prevent a way to deterministically find valid reversible mnemonics without first going through invalid reversible ones to check. I think others should chime in on whether they believe there is any security loss, in terms of entropy bits (assuming the initial 128 bits were generated securely). I estimate at most it would be 4-bits of loss for a 12-word mnemonic, but only if an attacker had a way to search only the space of valid reversible mnemonics (2**124) which I don&#39;t think is feasible (could be wrong?). There could also be errors in my above assumptions, this is a work in progress and sharing it here to solicit initial feedback/interest.</p><p style="font-family:-apple-system,system-ui,&quot;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;box-sizing:border-box;margin-bottom:16px;margin-top:0px;color:rgb(36,41,46);font-size:14px">I&#39;ve already written the code that can be used for testing (on GitHub user @hatgit), and when run from terminal/command prompt it is pretty fast to find a valid reversible mnemonics, whereas on IDLE in Python on a 32-bit and 64-bit machine it could take a few seconds for 12 words and sometimes 10 minutes to find a valid 24-word reversible mnemonic. </p>Example 12 words reversible (with valid checksum each way): <br><br>limit exact seven clarify utility road image fresh leg cabbage hint canoe<br><br>And Reversed:<br><br>canoe hint cabbage leg fresh image road utility clarify seven exact limit<br><br><br>Example 24 reversible:<br><br>favorite uncover sugar wealth army shift goose fury market toe message remain direct arrow duck afraid enroll salt knife school duck sunny grunt argue</div><div class="gmail_default"><br>And reversed:</div><div class="gmail_default"><br>argue grunt sunny duck school knife salt enroll afraid duck arrow direct remain message toe market fury goose shift army wealth sugar uncover favorite<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><br></span></p><p style="box-sizing:border-box;margin-bottom:16px;margin-top:0px"><span style="color:rgb(36,41,46);font-family:-apple-system,system-ui,&quot;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;font-size:14px">My two questions 1) are how useful could this be for you/users/devs/service providers etc.. and 2) is any security loss occurring and whether it is negligible or not?</span><br></p><p style="box-sizing:border-box;margin-bottom:16px;margin-top:0px"><span style="font-family:arial,helvetica,sans-serif;font-size:12.8px">Best regards,</span></p></div><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div dir="ltr"><div style="font-size:12.8px;font-family:arial,helvetica,sans-serif"><span><br>Steven</span> <span>Hatzakis</span> </div><div style="font-size:12.8px;font-family:arial,helvetica,sans-serif"><span class="gmail_default" style="font-family:arial,helvetica,sans-serif"> </span></div></div></div></div></div></div></div></div></div>