Special

Introducing the “Welcome to Xojo” Bundle!

New to Xojo and looking for guidance? We've put together a terrific bundle to welcome you! Xojo Bundle

This bundle includes six back issues of the magazine -- all of year 21 in printed book and digital formats -- plus a one-year subscription (beginning with 22.1) so you'll be learning all about Xojo for the next year. It's the perfect way to get started programming with Xojo. And you save as much as $35 over the non-bundle price!

This offer is only available for a limited time as supplies are limited, so hurry today and order this special bundle before the offer goes away!

Article Preview


Buy Now

Issue 20.1 ('Debugging')
Instant purchase and download via GumRoad!

FEATURE

Data Cryptography with the Feistel Network

More on Ciphers

Issue: 20.1 (January/February 2022)
Author: Eugene Dakin
Author Bio: Eugene works as a Senior Oilfield Technical Specialist. He has university degrees in the disciplines of Engineering, Chemistry, Biology, Business, and a Ph.D. in Chemical Engineering. He is the author of dozens of books on Xojo available on the xdevlibrary.com website.
Article Description: No description available.
Article Length (in bytes): 12,651
Starting Page Number: 32
Article Number: 20104
Resource File(s):

Download Icon project20104.zip Updated: 2022-01-02 19:45:20

Related Link(s): None

Excerpt of article text...

Horst Feistel was a German-Born physicist and he, along with Dan Coppersmith, worked on cryptography while working at IBM around 1974. The Feistel network is also called a Feistel cipher that is used to encrypt and decrypt data.

A quick explanation is that data is split into two pieces, and encryption occurs multiple times, which creates the encoded data. The number of iterations, and keys are different for each cipher that uses the Feistel network. Feistel Ciphers are used in two fish, padding schemes for certificates, key schedules, DES (Data Encryption Standard), and more.

There are exciting parts about Feistel Netwoks, such as the same algorithm that is used to encrypt data, is also the same algorithm to decrypt data. A Feistel Network is not really a cipher, it is actually the structure to build encryption algorithms, such as putting in the number of keys, length of keys, iterations, and then the Feistel network turns it into a cipher. The cipher (or algorithm) is then used to encrypt and decrypt data.

The general structure of the Feistel Network (Cipher) is shown in the diagram in Figure 1.

Let's work through the above figure to understand how this works by explaining each step, and this can be shown or proven in the attached Xojo program. Place the lower-case letter h in the Clear Text control, Key1 value of 1, with the Key2 value of 2.

Looking up the ASCII value of the letter h is 104 in decimal, which is the binary value of 01101000. The first step is to split the binary value in half, which creates a Left-side-step-1 value of 6 (L1), and a Right-side-step-1 value of 8 (R1).

...End of Excerpt. Please purchase the magazine to read the full article.