<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Sep 29, 2020 at 12:56 AM Sid Spry <<a href="mailto:sid@aeam.us">sid@aeam.us</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<br>
I noticed the other day that bit shifts and rotates are very popular in<br>
primitive construction. Why is this the case? Intuitively it seems to me like<br>
these operations are some of the most irregular that a computer has to offer.<br>
Bit shifting is related to division, but bit rotation does not seem closely<br>
related to any other easy to analyze operation. But I have no explanation for<br>
why it feels this way.<br></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">The reason we get rotate is that it is cheap: It is in essence a combination of a Left shift and a right shift.</div><br></div><div><div class="gmail_default" style="font-size:small">Besides division, they are used for multiplication. Pretty much every modern FPU has a big barrel shifter in the middle of the data path.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">One somewhat strange fact is that pretty much every CPU in use today supports 80 bit floating point arithmetic but no commonly used programming language I am aware of makes that accessible to the user except through specialized libraries.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">There is of course no reason that a strong cipher couldn't be created using FPU operations. But implementation would be very hazardous and likely to raise numerous incompatibilities between chips. </div><br></div></div></div>