[8690] in cryptography@c2.net mail archive

home help back first fref pref prev next nref lref last post

Re: Impact and purpose of IP/FP in DES

daemon@ATHENA.MIT.EDU (David G. Koontz)
Wed Apr 25 11:06:39 2001

Message-ID: <3AE6E347.3AAA18D0@ariolimax.com>
Date: Wed, 25 Apr 2001 07:46:31 -0700
From: "David G. Koontz" <koontz@ariolimax.com>
Reply-To: koontz@no_spam_ariolimax.com
MIME-Version: 1.0
To: cryptography@wasabisystems.com, mnemo@home.se
Content-Type: multipart/mixed;
 boundary="------------348F1776B9B50D0AAD6A4E7F"

This is a multi-part message in MIME format.
--------------348F1776B9B50D0AAD6A4E7F
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Martin Olsson wrote:
> 
> Dear Members,
> 
> I'm currently working on my own DES software implementation which
> can handle reduced rounds etc. This is mostly a learning project,
> and I do not intend to use my code for any product or such.
> 

> 
> I've found that PC-1 (the first keyspace permutation, which mixes
> the key bits and selects the 56 out of 64 real key-bits) and the
> IP (Initial Permutation) are closely related to each other. The first
> elements of the IP matrix can be calculated through adding 1
> to the first elements of the PC-1 matrix. Later on, the difference
> between these two becomes two, and then three etc,
> 
> I've searched the net and a few good books, on reasons to apply
> the IP. From Bruce Schneier's excellent book; "Applied Cryptography":
> 

> 
> First; I do not exactly understand what Mr.Schneier means. How can it be
> easier to transfer 8-bits of data into a chip if one first rearranges the
> bits? (eg; why wouldn't I just chop the 64-bits into 8 separate 8 bit chunks)
> Perhaps I got it all wrong (i dont speak native english), but sevral sources
> indicate similar "explainations" to this little feature. Perhaps there are
> some intelligent (non-NSA) folks around who are kind enough to explain this
> to me? Or atleast give me some hints/comments/thoughts on this issue.
> 
> MY QUESTION(s)...
> 
> ..is: If IP/FP has no effect on the security of DES. Why are PC-1 and
> IP related? Wouldn't that imply that IP/PC-1 are co-functioning in some
> strange way (a cooperation which logically would be cancelled if I omit
> the IP from the implementation) -- or atleast that they preform a similar
> function?
> 
> One *solution* could be, "since the key aswell as the block has to go into
> a chip -- its logic to apply the same kind of make-it-easier-to-transfer
> algo on both". But still I do not understand why these permutations are
> performed? And why are the permutations slightly different when applied
> to the key versus the IP?
> 
> Does this mean that PC-1 can be omitted too, without loosing security?
> Of course one still have to select the 56-bits of real keydata. But the
> actual permutation of the bits, seems to be, irrational or unnessecary?
> 

What you are risking here is the right to refer to you software as DES.
If it isn't compliant with the Digital Encryption Standard, it isn't the
Digital Encryption Algorithm.  The Initial and Final Permutations, as
well as the Permuted Choice 1 specify how to get particular bits of data
into (from for FP) particular registers (when viewed as a hardware 
implementation).  If two implementations were to be allowed to interface
data in more than one way, they couldn't interchange data.  I've included
a copy of a usenet posting from 1994 explaining the permutations. I received
a copy of FIPS 46 from a chip designer at Fairchild in 1978 while working
on crypto in the military.  I probably still have my notes on plotting 
out the permutations into hardware.  Mr. Rallapalli at Fairchild implemented
the 9414 chips set which basically implemented a byte of L, a byte of R,
two mask programmable S boxes, and either the C or D registers in a 40 pin
bipolar
IC.  The implementation was especially good at showing the nature of the
IP/FP permutations and PC1.  These being a pattern of 8 wires.  I've shown
this in a VHDL model of DES I did.  I'd be willing to send some one the
VHDL model which illustrates the 'disappearing permutations'.  In 1996
enholm@login.eunet.no (Morten Enholm) was trying to get a copy of it from
Mark Riordans ripem site  (ripem.msu.edu).  I'd be willing to vhdl pretty
print them into a pdf file so you could read the code (vhdl_des.tar.z). 
I'm not personally aware of any foreign copies of the VHDL code.  There
are three european VHDL implementations of DES in VHDL available on the
Web, all three are essentially translated from C, and show the permutations.
I'm including the toplevel as a pdf, which shows the translation between
byte bit order (7 downto 0) and NSA or IBM order (1 to 8), and hides the
IP in DIN(7 downto 0) and  FP in DOUT(7 downto 0) connections to the four
DSLICE's  (9414 chip equivalents, sans C and D registers).  I'm also
including dslice.vhdl as a pdf so you can see the organization.

You can find a sample C des implementation at:
url<ftp://ftp.cryptocd.com/pub/cryptocd/source/cyphers/des/c/koontz/>

(Either init_perm.c or inv_perm.c has a "| =" that should be "|=" for
gcc.  Some of the source files in this directory have CRLF instead of
just newlines, which can give some tools problems (make in particular).
This des program compiles for either big or little endian machines, although
the table size is unfriendly to small cache processors.  I wrote three
generations of much faster code I never released publicly.)

Of note are the FIPS Spec PUB 500-20 test vectors found in the file
des.test.
I believe one of the test vectors has a key parity bit flipped in this copy.

In 1995 I figured out how to reduce the size of lookup tables for IP and FP
in a C implementation.

By the way, PC1 is a permuted choice instead of a permutation, because the 
parity bits in the key does not go into the C or D registers.



-- 
remove "no_spam_" from Reply-to address
--------------348F1776B9B50D0AAD6A4E7F
Content-Type: application/pdf;
 name="des.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="des.pdf"

JVBERi0xLjIKJeLjz9MNCjIgMCBvYmoKPDwKL0xlbmd0aCAxMTE2Ci9GaWx0ZXIgL0ZsYXRl
RGVjb2RlCj4+CnN0cmVhbQ0KSIm8V21v2zYQ/q5fwW91B1ghKYqUPOyDY6lNajfObK1DsA5G
aiuOOsUubKVB//2OpKg3J5672FKQ6BDd3XP33OmOOo+ss3cMERTdWQQj+QM37iGBMYoeLIyW
1tn7KUXLLcjR3OqkyZfN7ebH2+grWDraktnE9wXYRoHUerI6KInj+FetlLvv5lpdYlOp2Hnc
xjUvxBa+72sv2oG9zRazdL1M5jNCOLNr/gi1Xd+nuf5tmr7srBEI4TKSQwN5Wm/+sYNwOrvu
D4b1EDwb9Nz/E0Eee5faTD2PV1mS1Ul1pIpnooAAUM0HldjmcbKtmXa5tOVlhgiuhrVTBvdt
vclq9rWn6HNHPoTyiVr5UH4F/ajfQ+VVLxKTrogJc7V+bCJVsgDjsuDf43m23gC4aHh0ZBym
7Iv10ypb7+ENf36ruO86Mn7h78Y/GI0Hw96B8TcqTCo0qauIX4MSVwazizkJp2E0u+q1iRlc
hhXEljDH7WMOw5vWMcOrweTmOmq5nrNJ+HuZ6h7M5ltXH3DPYTYmZJXbKmgbmMF4Nglujp3n
i5D5vCgQol/kdF7s8ZuHr//38siVjm438/skg8n2uKmvHCED4cbjeXjR/xTWzfPxmyd6t6eJ
fmpVELnyqU0ozxc/Y55c/J1uFyWrLN6sblO0TZZwU4akekhgDle6Cg4fum60tz0zezCqzONG
l7gyl4M3239CqUHcawUquLx6Jqtyz5GGcwzePWPd2HH1gntmx1EBiJ5zvJDHf5Qz7cQhm5PQ
q1muzKcTF3RcmUunhYK5W6Z16jYN23r54HTQFhQQGO528kmg5FngZ6Hkbngl7PXl1azgs4BF
vd/QG/Kmjl6+asVELzaA8KUSooyZLTCK77KzSbK8z9AkXiZb2AlosF5lm3W67ZUezE6gFOud
8Lp0RpPZaNwP2ni5AGp68S6ahfL1egHqAMqIV1A2jH88w9UOVUTQnKoj789gBmOw2Qon4Q6g
Po6DsI0yAdRRykSoKdOlOd+cP27j5+qD8YnqU/k8OepadfmpjgLD6aliZuYsEEYWtsFmCVS/
h98PoPEVLJ5kOT6iv/7GaGERlCCLQTVdjB6UwChKleBwm8nzq/wrHIpcrG5zyyVCSanlUmq7
VD+lwpgokSlNKYFdmkuu1DZGHCPlCe6giZUAyBoPZBWVssjjm1tfrPMI8ibmY0X1oy+gH5kK
j6lexJBy59NFMEIjGBnJarnbvIz4tmAcLHRL/hkvEHVR/9sGYfj6ET1MCgp9SaELKQoI5UFL
iiQl5SnrmyKCUcMTp4YnLgqeRGkkqOFJaO9pLiltY8SlqO+gybQk0TWkfOyURnmcOVf1rF2G
bewSpWB4ur5dqk+nBpnMswmWCekhTOoNBay5XPcLhKDahdGyWxxPVgP+ag4cr6TA0WlrbSV5
ef7gUKfPSSV7zlXycFM9wnnRIiACrFbW8Zica5lQIWzQ5EXCi3hrf79fpHlG/wowAGBUyMkK
ZW5kc3RyZWFtCmVuZG9iagozIDAgb2JqCjw8Ci9Qcm9jU2V0IFsvUERGIC9UZXh0IF0KL0Zv
bnQgPDwKL0YxIDQgMCBSCi9GMyA1IDAgUgovRjQgNiAwIFIKPj4KL0V4dEdTdGF0ZSA8PAov
R1MyIDcgMCBSCj4+Cj4+CmVuZG9iagoxMCAwIG9iago8PAovTGVuZ3RoIDExNDMKL0ZpbHRl
ciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtDQpIicyXbW/iRhDH3/tTzEtSJc4+r52qlULsXCkp
5jjnKq5UKA+EcoIQAcl9/c7u2gYHmzulSQNR8Fi7Mzu//84+0Ey943MOFNI7jxIwf/hQAWhC
IJ15BMbe8YdPDMZLtNMb8/XNawB+DtKv6CucL/N5GIbonUZeYzkZ319NXXsWm/syDIOsHbqt
Eyg+y9XtcDofT26GT6Ob1XwBgwZ9Fpxg9CD3Xs1LkalP1yMDZ4ODn037EdM4ZMDhiPrMtf3H
nJN3zDn9aW3baWI+ZcpMVUh9E0opYaarcXQE6fwBpqOn0RSeJsvJ9XQEMXRHi9nj6mo1md+D
I12eFLHyKVeS2RhVg75QtB6tEs3BSpO4erX56QWVQ7n3bd040X4YSFAsyIVDUeawmkOUXKY4
n4ODbYWoKin00lTD76T66tpQdfISbYio1oZXaCND9iraUF2V6puowsRLVJEBqVZFVqmigldR
hcn/TRXOXqSKVNWqqCpV+I/UyvVoPLkv75uloU0gUqze1nECzce7u9GiYmsTgavkqIkbUrMV
tXrlcZWRQGXjPswXq9KwpazKjsTPvWZXD8/2eL3hNGh8gV9+heg0PR009ODgsG9fWx270RxC
Etv3JD6EU2dle1B+NFBqktg4GqIm2wMUVUJh9ShsJwrfAxRZQuH1KHwnitgDFFFCEfUoYieK
3AMUXkKR9ShyJ4raAxRWQlH1KGonit4DFFpC0fUoeidKsAcopIQS1KMEBcrWMcR1cfidXSRn
bWhenp/Hve1ziGdX7LOLdvMEzPfleZlBm0zlm8JbJpvnIXxxdruWbH097sWf4rSeLLsr2l7I
1up83mILzE1FvCmbmzCbxLCT4dm3OkC2vs217h8eV/V3CJbdcKLWMO7gFeldCaNWXPChXawx
bnozOGK+cGss2Ydkk41kk/pk2/09SLYd94tk0a7PNu6cJVFsKr0iWf7Wi9glizn0+t00S9e8
1dU5VUWdJ4+rnYVOeV7ovY84G7j5vR8g5hB/NPPh9uRuqzM023JW90PbuDFD9Fnx7wFA0ov6
dQDJ0DbWArT77w+Aa6B+Csxi2ZyDOMX4QQBjj8AH/P8do33F6N9Maf0Bf/1N4NajMAFPENCS
wMwagsHUGlz5An+tCfOt8UeiJPZx40mqrTX1JGM+nqK2lencxZrC9jQW+k0zS5reuRMuAhsJ
n9iTWANHduOhbbOyHll+N96110xRI5ppJOy6CvHAR1O63HGxEERufP4tuoCLyXI1uR9vL0JB
Q18LhR5uJf45usUzBU4fFkAoEH1CaCFhaCSUiKgxlZmzrEjWypDdwwohWK6TYrlOShc66bWT
ZrlO2kWfZpbtnTspY7on9hTOMqO7IU0zXztleWZalamlID6R1HbIdepejUdWn7KYIvApMUDu
JsHKBYWq4QFs6wVTsOUi2LpaeGBmA7+dBjxYS8AdtuttrSDjx4AOX9ENeqUsPD5sjShVlAia
OKzr7PLJmUskTGtcZEIVwLejpf/0z+00I/pXgAEA1uAkigplbmRzdHJlYW0KZW5kb2JqCjEx
IDAgb2JqCjw8Ci9Qcm9jU2V0IFsvUERGIC9UZXh0IF0KL0ZvbnQgPDwKL0YxIDQgMCBSCi9G
MyA1IDAgUgovRjQgNiAwIFIKPj4KL0V4dEdTdGF0ZSA8PAovR1MyIDcgMCBSCj4+Cj4+CmVu
ZG9iagoxMyAwIG9iago8PAovTGVuZ3RoIDkwMAovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz
dHJlYW0NCkiJzFZtT9swEP6eX+GPZVqN7Th2wsak0oSXEVqWZpvQOlWlLQXUAoJqaP9+ZzvO
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
87/g8H5Dfv0tIZuIklsSwZNaiYTcaYIzstdEKmOOIx6/VcqISPRyEwkoCaT2kWAsFszsMuVE
NMk1EimQ21tKINoJwftDnwQrIBNNgGajD2htlZaw9t1EH6MX+L8Ndf2n3zW5gncN1+aBUvv/
zeT9y6Ii1e3x6fZ+138EcXjXKS5BwjyCftlu4GFEnj88kgQaWp0m1IcwxxAKcFGBKXeG0kHS
lHXZLDoQnLk4SebiJJWPk2qEFHNxUub0vaU02glJJM0KSG4o1G5U4nbaCFk7bazaXguexImg
GuDidPVht9XxaQeTZzFN0CGu48PbBQVRE9LUC5igy4WzplrSDLMB3yYGadaEIDVuG7SmMus/
HGjclzTwXkrtPCy6RqT0JQIkqDVgY4/zueUJUwraDFLtHN5sj/Ffv2/21qN/BBgATMgXXQpl
bmRzdHJlYW0KZW5kb2JqCjE3IDAgb2JqCjw8Ci9Qcm9jU2V0IFsvUERGIC9UZXh0IF0KL0Zv
bnQgPDwKL0YxIDQgMCBSCi9GMyA1IDAgUgovRjQgNiAwIFIKPj4KL0V4dEdTdGF0ZSA8PAov
R1MyIDcgMCBSCj4+Cj4+CmVuZG9iagoxOSAwIG9iago8PAovTGVuZ3RoIDEzMzYKL0ZpbHRl
ciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtDQpIibRX23IaRxB95yvmEaXCau6zK8epslkky0KG
ApI8hJQKC0zkIKESOK78fXouO9PLLpIeElRiu3rOTPfp2yzvZ53Tc0EYmX3pMErsHzx0Tgyl
ZHbfoWTdOb2YcrLegTy7tV/fO10SPsNL/3z7MykvP827+fzkx5PZV0D1WMbJrEzQcYKCOO9y
RSzy9FwG6ypTRQH27ab91q9VnmWsiGtE8GClx3RmQN+wNRhGWxMuHXb2A1qepGXWWL0icfVq
Ou8Kc+CnzMAX9hpHZY4cZW2O9odXlS0QG65MBtPBLDhqxQZgWEZfh5Ob4ehd2YBMBxgy/XA+
uxl8aqDGo5Sd0f+cnclkFMMveJP0MC1z1aScPC1Hv8zmXTM/wZj5yZtQgTyT0a6HQj7IT2+t
1TeHVVodUU4GF2ekX97AkzzzsXhm24VnjGvbNIKarMgVkYW2ndPt9chfq3/Il+0TKafDy/6A
n4q4q2ozmUsHro6MAeeZSEF93D7tayGvrdY30kwH/f3i8SBPBm2ad12SjE2ebiapZHW+VYeb
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
W40LYoqEMGoLEk4fVWwoVE0q3y9IwbWL4PNuiRP7GvjtNYiTuQSxL9t7OysJ9WNAX75id6pX
yhWPh+sRpW5bBE1M6509n7zmQiVca5xCfOq84E53Sv787AxCRf8EGABe64epCmVuZHN0cmVh
bQplbmRvYmoKMjMgMCBvYmoKPDwKL1Byb2NTZXQgWy9QREYgL1RleHQgXQovRm9udCA8PAov
RjEgNCAwIFIKL0YzIDUgMCBSCi9GNCA2IDAgUgo+PgovRXh0R1N0YXRlIDw8Ci9HUzIgNyAw
IFIKPj4KPj4KZW5kb2JqCjI0IDAgb2JqCjw8Ci9UeXBlIC9IYWxmdG9uZQovSGFsZnRvbmVU
eXBlIDEKL0ZyZXF1ZW5jeSAxMDYKL0FuZ2xlIDQ1Ci9TcG90RnVuY3Rpb24gL1NpbXBsZURv
dAo+PgplbmRvYmoKNyAwIG9iago8PAovVHlwZSAvRXh0R1N0YXRlCi9TQSBmYWxzZQovT1Ag
ZmFsc2UKL0hUIDI0IDAgUgo+PgplbmRvYmoKNCAwIG9iago8PAovVHlwZSAvRm9udAovU3Vi
dHlwZSAvVHlwZTEKL05hbWUgL0YxCi9CYXNlRm9udCAvSGVsdmV0aWNhLUJvbGQKPj4KZW5k
b2JqCjUgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9OYW1lIC9GMwov
QmFzZUZvbnQgL0NvdXJpZXIKPj4KZW5kb2JqCjYgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1
YnR5cGUgL1R5cGUxCi9OYW1lIC9GNAovQmFzZUZvbnQgL0NvdXJpZXItQm9sZAo+PgplbmRv
YmoKMSAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDggMCBSCi9SZXNvdXJjZXMgMyAw
IFIKL0NvbnRlbnRzIDIgMCBSCj4+CmVuZG9iago5IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9Q
YXJlbnQgOCAwIFIKL1Jlc291cmNlcyAxMSAwIFIKL0NvbnRlbnRzIDEwIDAgUgo+PgplbmRv
YmoKMTIgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCA4IDAgUgovUmVzb3VyY2VzIDE0
IDAgUgovQ29udGVudHMgMTMgMCBSCj4+CmVuZG9iagoxNSAwIG9iago8PAovVHlwZSAvUGFn
ZQovUGFyZW50IDggMCBSCi9SZXNvdXJjZXMgMTcgMCBSCi9Db250ZW50cyAxNiAwIFIKPj4K
ZW5kb2JqCjE4IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9QYXJlbnQgOCAwIFIKL1Jlc291cmNl
cyAyMCAwIFIKL0NvbnRlbnRzIDE5IDAgUgo+PgplbmRvYmoKMjEgMCBvYmoKPDwKL1R5cGUg
L1BhZ2UKL1BhcmVudCA4IDAgUgovUmVzb3VyY2VzIDIzIDAgUgovQ29udGVudHMgMjIgMCBS
Cj4+CmVuZG9iago4IDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbMSAwIFIgOSAwIFIg
MTIgMCBSIDE1IDAgUiAxOCAwIFIgMjEgMCBSXQovQ291bnQgNgovTWVkaWFCb3ggWzAgMCA2
MTIgNzkyXQo+PgplbmRvYmoKMjUgMCBvYmoKPDwKL1R5cGUgL0NhdGFsb2cKL1BhZ2VzIDgg
MCBSCj4+CmVuZG9iagoyNiAwIG9iago8PAovQ3JlYXRpb25EYXRlIChEOjE5MTAxMDQyNTA3
MDIyNikKL1Byb2R1Y2VyIChBY3JvYmF0IERpc3RpbGxlciBDb21tYW5kIDMuMDJiIGZvciBT
b2xhcmlzIDIuMyBhbmQgbGF0ZXIgXChTUEFSQ1wpKQo+PgplbmRvYmoKeHJlZgowIDI3CjAw
MDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwNzk5NSAwMDAwMCBuIAowMDAwMDAwMDE2IDAwMDAw
IG4gCjAwMDAwMDEyMDUgMDAwMDAgbiAKMDAwMDAwNzc0OSAwMDAwMCBuIAowMDAwMDA3ODM0
IDAwMDAwIG4gCjAwMDAwMDc5MTIgMDAwMDAgbiAKMDAwMDAwNzY4MCAwMDAwMCBuIAowMDAw
MDA4NDg5IDAwMDAwIG4gCjAwMDAwMDgwNzUgMDAwMDAgbiAKMDAwMDAwMTMxOSAwMDAwMCBu
IAowMDAwMDAyNTM2IDAwMDAwIG4gCjAwMDAwMDgxNTcgMDAwMDAgbiAKMDAwMDAwMjY1MSAw
MDAwMCBuIAowMDAwMDAzNjI0IDAwMDAwIG4gCjAwMDAwMDgyNDAgMDAwMDAgbiAKMDAwMDAw
MzczOSAwMDAwMCBuIAowMDAwMDA0OTMwIDAwMDAwIG4gCjAwMDAwMDgzMjMgMDAwMDAgbiAK
MDAwMDAwNTA0NSAwMDAwMCBuIAowMDAwMDA2NDU1IDAwMDAwIG4gCjAwMDAwMDg0MDYgMDAw
MDAgbiAKMDAwMDAwNjU3MCAwMDAwMCBuIAowMDAwMDA3NDYxIDAwMDAwIG4gCjAwMDAwMDc1
NzYgMDAwMDAgbiAKMDAwMDAwODYwNCAwMDAwMCBuIAowMDAwMDA4NjU0IDAwMDAwIG4gCnRy
YWlsZXIKPDwKL1NpemUgMjcKL1Jvb3QgMjUgMCBSCi9JbmZvIDI2IDAgUgovSUQgWzxlZWE0
ZDIyMWI2MTlmNjkwMDQxMTE2ODAzZTI4ZTgxOT48ZWVhNGQyMjFiNjE5ZjY5MDA0MTExNjgw
M2UyOGU4MTk+XQo+PgpzdGFydHhyZWYKODc5MAolJUVPRgo=
--------------348F1776B9B50D0AAD6A4E7F
Content-Type: application/pdf;
 name="dslice.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="dslice.pdf"

JVBERi0xLjIKJeLjz9MNCjIgMCBvYmoKPDwKL0xlbmd0aCAxMDExCi9GaWx0ZXIgL0ZsYXRl
RGVjb2RlCj4+CnN0cmVhbQ0KSInUV21z2jgQ/u5foY+kM6iSLEt27lNp3PTFN8mBp5eZSydD
wHXdMZABp53797d6gwgKIRfipGaCd+LdfZ59tF6JXh68fscRRfnXgBKkPnATMZKEoHwSEFQG
r08HDJULsPNR0Kmr6/lw/u9R/h0iQxPJMU0SCbH5ifL6GXRQVRTFH8bJpu9ary7FTDl2bheF
l4VimSSJyWIS4EUzvqpnZTW6olRw7OWjDEdJwqz/sK63J1sjQoVigroMc/24mDZV41cUqtyx
43IyyD68TZGXhSsAW3OnWnjR3RiHSRKtSkVwedFMOTh6N7N548V7T9FlRz3sWkAvp7r6H47R
3csXiatU1NGcrmlE78Doaym4lqxLI6XDJmb2DJjnT4J59aMYNbM5iEzXMhoaJqiZ7UgYXx4Z
5qFat3iTeZq1r1babx/zkw/5claIsvuW6G3mk29Drn46SPPjdjGzk/bbYpA+w7A42xtzdtus
gco10D1akeNklfFx06LfP9u3FR9A3cpld74NzKx9zOxJlmgrpJV9iZC/Uhv/eEfe9VODebg8
NQzno29VAw1xO/fPMVKBC5ell75/83nX2WH2dUe37Hny6FIJDRjfYTeaTW5mUzjZeMkjpaoL
hQF0Gg90uP1/K+eVgd3HvfyJeo35/54CRGGF28d6G1huzLWB5baONrDcltEGltudDoJ1yKMd
kxAS/4LxX/cyfq79ZSvlgZ28B6FsF5SqCfArrP4BsbZDPXy4e+4Eu3G9x9hc2xakShs9bPAO
emcXrc/d3gt7t8T9jfrS3i1+ebSdces9uNF6u7tnUZXTYe3lDJWWsaPj/Uq9XzdG1Pk1fvxM
egTl/u9HOX0yyqtfuQfnfPHp+HfjfH6RPRHnzdbY7wW8LkozYdMc3nbAKgOCTuHvIzh8h4Cf
iBL0J/rnC0HjgKIKBZwgGRE00QZnqNZGKDCPEefqW4YMRUTfRkFEpbbqIGIMR8w8ZdKFaJNr
T2VBXG2tSHm7IEGQzgR38CTaAGSDB7ZmpSMsv1FwHfRyKJu6kQoVMZxIgcCMDPd8AqWWQefz
+5MMZdWiqaalUgNqVs6UCVU+pwmWXEAEURGdv4sxYhF6czNHBGa0PCZ0KWGiJIygRAlUJsbS
ImnLlmxuWgjOnE6COZ2EXOokV0GSOZ2kyV5bS3u7IKFMcwdPbiyFbiDV43AVZHlarfyqI04w
iah2cDqdD0v9u3JNTB5jSlRBXOtD/YYC1SJh+gUo6HbhbNUtYaxWA76NBmG8kiA0ZRtvbcW2
fkhoyhf0TvVC6OLhpntEiGWLgAmwxtnwcTV7lTCR4JiCr1iWPF7U1ajAP76Na1vWfwIMAEiN
SV8KZW5kc3RyZWFtCmVuZG9iagozIDAgb2JqCjw8Ci9Qcm9jU2V0IFsvUERGIC9UZXh0IF0K
L0ZvbnQgPDwKL0YxIDQgMCBSCi9GMyA1IDAgUgovRjQgNiAwIFIKPj4KL0V4dEdTdGF0ZSA8
PAovR1MyIDcgMCBSCj4+Cj4+CmVuZG9iagoxMCAwIG9iago8PAovTGVuZ3RoIDEwOTMKL0Zp
bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtDQpIidRXTW/jNhC961fMqXAKWyEpkpKy3QLd
tZJNrUVcWWgD1D24seL1wl+wlW5+fmdISrIsZ+FjayCjSYbz+ObNkFY+5N71bQAc8mePM2Ag
fC40oKsjCBmDfO0xWHjXdxMBiwP6+ROZb15vMIBsufhSwmwzh7R4LmFfLJaHstjDYbV8Kg5X
+VeLyRyeDjXh9bL7u0/5DWTJXTShRQwG3BeQD70e4If+dH0rLSnhB3EcIwRFd9t9aaPBmWg7
kfna/X0927WSuB8eJU17FByEPo9j3SZCn8m9fb7/GbL7Pi3Nf2yiH9NRFUW3E54kdfIk6USz
ZJLkDprczoJ0WKenw07UBSk6fkw74d+acNYllj7UwfShD3Wr6vYLzv045qCwb9Qz7Pbzdg8J
jIv9utNZpWxna/yswSf3O/gus4VvRmr7Uu5eyu5WUtZbTa/eufkRvjRtS5Pb/+Fkpf/ZyeqO
ztFcdYfuaK5akmGzUc7AKbPdFZu3xTagAx6QluKMbM1opecniymfMqW9varJemOcgig6HSd+
eg8GYTWjzcdMly+U4g1F2mnay/qj6RW8teIUQXHGm/FFhOR1N9scltuNOQkv5axEv0ub2VOQ
jJPs8805GXCRQBWcAsNJev8xYW48AtFHy8kYLyAjySicWgpnMcByTaeimE+v3ijWgtk8MppM
SCYiExMW72cRQPHahupUbfnxan5tfh85MjKcjCATEGbUz3h4Ib8qj4wko8hoMiFhxYilLyYo
DKLNJhORIZ6CeApuKtb9TMgL2bk8MsRTEE9BPIXpBO5CWBeyCwyizSZDPAXxFMRTmH5gOOOX
aufy0ATEMyCebnYMlurjryfsWmPKNWt9L5zeFwn89B6SFH6AbNrjJ3dGQBencLdCuT25afnR
TavwwBkI2YagiyDWlyBEBiHJzl8AXMjqII33BUy6dbq7Jnl8yEY3Z755TLGPI1PuSZmMiEhH
5HW7/843yugdHCt5cu+p2I/xNovqL2wuAPnAYlbal7Ekx05jeIHs7vDnV0z/ivt8o/TP8Odf
DOYehyV4kkGoGKyNIwWsjBNoX0YgJdkQG6+YeTx5Cs8SeStPCeErYaMirFKMK81K8jBv5TxF
q6skHBaDhE9cyYyDO9v90DesTIbj9+T97X2gN1ju1JJGkBjva3SV5e7eYHu/fxqmkOIL6nKz
6KoneeyHUmOG7eQfxRwVhV92e8CzxsIbxmsJY5JQYYkhUllbz4hkPFeyfRghpKh00qLSSYe1
TmGTFIpKp9Cir5xnVldJmlz7xJXSerS73ZLCQZPkeDqt2lUryXyGJ58WVDqNZ4vC6NMWU0Y+
Z1SQPQqiPVCoGr7ImXlBCmZcpGimJYioG2itBkHUSBDYsu1q40WufgS05Wt+VL3Wpnh8mBnR
uh4RdHFbu9jyqWpuVSJ07Ed450tdlzw3/7D4/3yZr1xZ/wowAPpntpEKZW5kc3RyZWFtCmVu
ZG9iagoxMSAwIG9iago8PAovUHJvY1NldCBbL1BERiAvVGV4dCBdCi9Gb250IDw8Ci9GMSA0
IDAgUgovRjMgNSAwIFIKL0Y0IDYgMCBSCj4+Ci9FeHRHU3RhdGUgPDwKL0dTMiA3IDAgUgo+
Pgo+PgplbmRvYmoKMTMgMCBvYmoKPDwKL0xlbmd0aCA3NzkKL0ZpbHRlciAvRmxhdGVEZWNv
ZGUKPj4Kc3RyZWFtDQpIicxV227aQBB991fMo6nCZne9FztpKgXl0jZUQcFKkeo+EHCoIwMp
mFz+vrO7NsaBpm2euhLeI8/9zAzuxN7+WQAM4luPUaDACeMKEKoQNKUQTz0KE2//vM9hskQc
j8zj0fPbbehDZ/6ULgESfzSf3WaT1SIdw2qW/Vyl+XPSasV3zistPSqtjEe/zw6g37kcGAUK
bUY4xCeeD3jMq/0z4VLiJIiiCM2N9H6+KJw02CFtGlKiyvfT4X3DiBG9YZT4RtjWhEWRaiZi
Tqe8jz7A6eAi8VkzChMEfbHSWTF/EYhtBFJJa8+GYsq83w7Vr0P1LndFCv4yknC8t5kk8mWg
pHVoZPG7mmuD+7xux6bsv+2DfnMfGP/HRsg3NyL8cyO2Vk4KYRekvfvYfSFcSla7wz28gvdH
cJv4V3sXSQue5gvowu+UX/ErGUVVTkTltwe9dDFdFcMim89gOhyncPMM6VORLmbDHHDnZ+mo
yB6y4nlr1YXmtpLe4PKqe7Bj0c3pDbom9d6nFyRTMxxBSSTW88rkdA8rZ9uEchmRKMRcFC1Z
hRAwH5gMi3S5nbIIrRpsneZM13Wks/ErqXVOPx5fn9pGn8bIL2YyQetz/H1GnTu0eTShv8C3
7xTGHoMMPEFBSwpTCwSH3IJAEWESNE8dcJDUXiNPMm1R7knOieROynVlYqGwmgahXV4iabQr
IyTIesIbNakFGNnFQ2yzshZlfiPvxuuYjwer9sISH+EfPELpci8/Hv71x5MudLNlkc0m210S
LCJaKLRwXfqK3xAu4fh+ATiPVB9QtqYwMhRKLFFjKlOHLEkWlSW7yxIheMWT4hVPSq950rWR
5hVP2nnPS2S1KyNloLtRUzhkoruQRhzURmWeJVfNqqWghOJqGoWKp95wklp+mmSKkDBqCnL/
DUFzoJA1qdy8YAp2XASvpyUITTfw6TgIwpqCwJXttC0Ky/rRoStfsY3qlbLF42VnRKn1iCDE
sE7Z5VPV3KiEq4iEDHXVuuTxMs9GKXn4Mc7Lsn4JMAB4OcZxCmVuZHN0cmVhbQplbmRvYmoK
MTQgMCBvYmoKPDwKL1Byb2NTZXQgWy9QREYgL1RleHQgXQovRm9udCA8PAovRjEgNCAwIFIK
L0YzIDUgMCBSCi9GNCA2IDAgUgo+PgovRXh0R1N0YXRlIDw8Ci9HUzIgNyAwIFIKPj4KPj4K
ZW5kb2JqCjE1IDAgb2JqCjw8Ci9UeXBlIC9IYWxmdG9uZQovSGFsZnRvbmVUeXBlIDEKL0Zy
ZXF1ZW5jeSAxMDYKL0FuZ2xlIDQ1Ci9TcG90RnVuY3Rpb24gL1NpbXBsZURvdAo+PgplbmRv
YmoKNyAwIG9iago8PAovVHlwZSAvRXh0R1N0YXRlCi9TQSBmYWxzZQovT1AgZmFsc2UKL0hU
IDE1IDAgUgo+PgplbmRvYmoKNCAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlw
ZTEKL05hbWUgL0YxCi9CYXNlRm9udCAvSGVsdmV0aWNhLUJvbGQKPj4KZW5kb2JqCjUgMCBv
YmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9OYW1lIC9GMwovQmFzZUZvbnQg
L0NvdXJpZXIKPj4KZW5kb2JqCjYgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5
cGUxCi9OYW1lIC9GNAovQmFzZUZvbnQgL0NvdXJpZXItQm9sZAo+PgplbmRvYmoKMSAwIG9i
ago8PAovVHlwZSAvUGFnZQovUGFyZW50IDggMCBSCi9SZXNvdXJjZXMgMyAwIFIKL0NvbnRl
bnRzIDIgMCBSCj4+CmVuZG9iago5IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9QYXJlbnQgOCAw
IFIKL1Jlc291cmNlcyAxMSAwIFIKL0NvbnRlbnRzIDEwIDAgUgo+PgplbmRvYmoKMTIgMCBv
YmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCA4IDAgUgovUmVzb3VyY2VzIDE0IDAgUgovQ29u
dGVudHMgMTMgMCBSCj4+CmVuZG9iago4IDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBb
MSAwIFIgOSAwIFIgMTIgMCBSXQovQ291bnQgMwovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQo+
PgplbmRvYmoKMTYgMCBvYmoKPDwKL1R5cGUgL0NhdGFsb2cKL1BhZ2VzIDggMCBSCj4+CmVu
ZG9iagoxNyAwIG9iago8PAovQ3JlYXRpb25EYXRlIChEOjE5MTAxMDQyNTA3MDIyOCkKL1By
b2R1Y2VyIChBY3JvYmF0IERpc3RpbGxlciBDb21tYW5kIDMuMDJiIGZvciBTb2xhcmlzIDIu
MyBhbmQgbGF0ZXIgXChTUEFSQ1wpKQo+PgplbmRvYmoKeHJlZgowIDE4CjAwMDAwMDAwMDAg
NjU1MzUgZiAKMDAwMDAwMzg4MiAwMDAwMCBuIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAw
MDExMDAgMDAwMDAgbiAKMDAwMDAwMzYzNiAwMDAwMCBuIAowMDAwMDAzNzIxIDAwMDAwIG4g
CjAwMDAwMDM3OTkgMDAwMDAgbiAKMDAwMDAwMzU2NyAwMDAwMCBuIAowMDAwMDA0MTI3IDAw
MDAwIG4gCjAwMDAwMDM5NjIgMDAwMDAgbiAKMDAwMDAwMTIxNCAwMDAwMCBuIAowMDAwMDAy
MzgxIDAwMDAwIG4gCjAwMDAwMDQwNDQgMDAwMDAgbiAKMDAwMDAwMjQ5NiAwMDAwMCBuIAow
MDAwMDAzMzQ4IDAwMDAwIG4gCjAwMDAwMDM0NjMgMDAwMDAgbiAKMDAwMDAwNDIyMSAwMDAw
MCBuIAowMDAwMDA0MjcxIDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUgMTgKL1Jvb3QgMTYg
MCBSCi9JbmZvIDE3IDAgUgovSUQgWzwwYWViNzE0YTk2OWYzNzFiMTkyMjM5YmM3YjFmYjVm
Yj48MGFlYjcxNGE5NjlmMzcxYjE5MjIzOWJjN2IxZmI1ZmI+XQo+PgpzdGFydHhyZWYKNDQw
NwolJUVPRgo=
--------------348F1776B9B50D0AAD6A4E7F
Content-Type: text/plain; charset=us-ascii;
 name="IP_post"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="IP_post"

Newsgroups: sci.crypt
Subject: Re: DES's initial permutation
Summary: 
Expires: 
References: <jktaberD9CGw3.5xF@netcom.com> <DD7CtL.3AM@ulysses.homer.att.com> <ssampson.186.000A7668@icon.net>
Sender: 
Followup-To: 
Distribution: 
Organization: MasPar Computer Corporation
Keywords: 

In article <ssampson.186.000A7668@icon.net> ssampson@icon.net (Steve Sampson) writes:
>In article <DD7CtL.3AM@ulysses.homer.att.com> smb@research.att.com (Steven Bellovin) writes:
>>In article <jktaberD9CGw3.5xF@netcom.com>, jktaber@netcom.com (John K. Taber) 
>writes:>> Nick Barron (nik@dreamland.tcp.co.uk) wrote:
>>> : I've recently been re-reading some of the textbooks I have, and I was
>>> : wondering if anyone could enlighten me on the purpose of the DES IP?  I've
>>> : read in one source that it has been shown to increase DES's resistance to
>>> : cryptanalysis (differential IIRC), but with no further reference.
>>> 
>>> : Can anyone shed any light on this?
>>> 
>>> 
>>> 
>>> Somebody, I forgot who now (Lynn ???) convinced me that the purpose of 
>>> the IP was hardware considerations in 197x. I had always wondered about 
>>> this too.
>>> 
>>> I'm sorry, I don't remember the explanation well enough to repeat it for 
>>> you. I found it convincing.
>
>>Yup.  It's got to do with serial-parallel conversion -- chips in 197x
>>didn't have nearly as many pins as do modern ones...
>
>The IP was designed to shuffle the EBCDIC bit pattern, as it has a signature.
>It doesn't do anything for ASCII, and can be deleted.
>
 
The Initial Permutation
 
The Initial Permuation (IP) is a description of how a byte wide interface is
connected to a 64 bit block comprised of two 32 bit blocks (L and R).  Consider
a byte wide interface with the bits numbered 1-8.  The event numbered bits
go to the L Block and the odd numbered bits go to the R block.  Note that the
bit order is big endian, where bit 1 is most significant and bit 8 is least
least significant.  The input block is typically loaded as 8 successive byte 
loads:
 
Port    MSB7     Input  (LR)                     Left
 Bit    Bit             Block (64 bits)                 Block (32 bits)
 
  2------6-------58 50 42 34 26 18 10  2                 1  2  3  4  5  6  7  8
  4------4-------60 52 44 36 28 20 12  4                 9 10 11 12 13 14 15 16
  6------2-------62 54 46 38 30 22 14  6                17 18 19 20 21 22 23 24
  8------0-------64 56 48 40 32 24 16  8                25 26 27 28 29 30 31 32
 
                                                        Right
                                                        Block (32 bits)
  1------7-------57 49 41 33 25 17  9  1                 1  2  3  4  5  6  7  8
  3------5-------59 51 43 35 27 19 11  3                 9 10 11 12 13 14 15 16
  5------3-------61 53 45 37 29 21 13  5                17 18 19 20 21 22 23 24
  7------1-------63 55 47 39 31 23 15  7                25 26 27 28 29 30 31 32
 
Input Byte        8  7  6  5  4  3  2  1
 
The Final Permutation
 
The Final Permutation (IP-1) provides the inverse, it standarizes the output
of the R16L16 output block to a byte wide interface.  The Output block is
ordered Right then Left to allow complementary operation for subsequent
decryption.  Were one to perform an IP followed by IP-1 without any intervening
round iteration operations, one would end up with odd and even bits swapped:
 
Right                           Output (R16L16)               Standard  Port
Block (32 bits)                 Block   (64 bits)               Bit      Bit
 
 1  2  3  4  5  6  7  8          1  2  3  4  5  6  7  8---------6--------2
 9 10 11 12 13 14 15 16          9 10 11 12 13 14 15 16---------4--------4
17 18 19 20 21 22 23 24         17 18 19 20 21 22 23 24---------2--------6
25 26 27 28 29 30 31 32         25 26 27 28 29 30 31 32---------0--------8
 
Left
Block (32 bits)
 
 1  2  3  4  5  6  7  8         33 34 35 36 37 38 39 40---------7--------1
 9 10 11 12 13 14 15 16         41 42 43 44 45 46 47 48---------5--------3
17 18 19 20 21 22 23 24         49 50 51 52 53 54 55 56---------3--------5
25 26 27 28 29 30 31 32         57 58 59 60 61 62 63 64---------1--------7
 
Output Byte                      8  7  6  5  4  3  2  1
 

>From FIPS Pub 46-2:
 
Final Permuation IP-1:
                                   Output Byte
40  8 48 16 56 24 64 32                 1
39  7 47 15 55 23 63 31                 2
38  6 46 14 54 22 62 30                 3
37  5 45 13 53 21 61 29                 4
36  4 44 12 52 20 60 28                 5
35  3 43 11 51 19 59 27                 6
34  2 42 10 50 18 58 26                 7
33  1 41  9 49 17 57 25                 8
 
 1  2  3  4  5  6  7  8 Port Bit
 7  6  5  4  3  2  1  0 MSB7 Bits
 
In the simplest hardware implementation of DES, the Left and Right blocks are
comprised in hardware of four 8 bit register each.  Each 8 bit register can be
serially loaded (IP), serially unloaded (IP-1), or parallel output and parallel
loaded (round interation).  DES is an encryption algorithm originally required
to be implemented in hardware, specified in 1977 - predating 16 or 32 bit
microprocessor peripherals.

Permuted Choice 1

PC1 performs a similar function loading the C and D 28 bit registers (comprised
of three 8 bit bidirectional shift register and 1 4 bit bidirectional shift
register, all with parallel outputs).  The C and D registers can be serially
loaded (shifting right), or serially shifted left or right in a closed ring
for encryption or decryption.

Port    MSB7                                                                
Bits     Bits                                                           
                           
                Input   (CD)                            C
                        Block, 64 bits                  Block (28 bits)
 
1--------7------57 49 41 33 25 17  9  1         MS       1  2  3  4  5  6  7  8
2--------6------58 50 42 34 26 18 10  2                  9 10 11 12 13 14 15 16
3--------5------59 51 43 35 27 19 11  3                 17 18 19 20 21 22 23 24
4--------4------60 52 44 36 ----------- (C(28))         25 26 27 28
 
                                                        D
                                                        Block (28 bits)
 
7--------1------63 55 47 39 31 23 15  7                  1  2  3  4  5  6  7  8
6--------2------62 54 46 38 30 22 14  6                  9 10 11 12 13 14 15 16
5--------3------61 53 45 37 29 21 33  5                 17 18 19 20 21 22 23 24
4-------(D(25)--------------28 20 12  4                 	    25 26 27 28
 
8--------0------64 56 48 40 32 24 16  8         LS      (parity)
 
Input Byte      8  7  6  5  4  3  2   1 
 
Note that bit 4 is used as input for both C and D.  This implies that C(28)
output is used as the serial input to D(25).  The least significant bit is
used for odd parity.

--------------348F1776B9B50D0AAD6A4E7F--




---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@wasabisystems.com

home help back first fref pref prev next nref lref last post