0 Up votes0 Down votes

480 views7 pagesJan 03, 2010

© Attribution Non-Commercial (BY-NC)

PDF, TXT or read online from Scribd

Attribution Non-Commercial (BY-NC)

480 views

Attribution Non-Commercial (BY-NC)

- The Woman Who Smashed Codes: A True Story of Love, Spies, and the Unlikely Heroine who Outwitted America's Enemies
- Steve Jobs
- NIV, Holy Bible, eBook
- NIV, Holy Bible, eBook, Red Letter Edition
- Hidden Figures Young Readers' Edition
- Cryptonomicon
- Console Wars: Sega, Nintendo, and the Battle that Defined a Generation
- Make Your Mind Up: My Guide to Finding Your Own Style, Life, and Motavation!
- The Golden Notebook: A Novel
- Alibaba: The House That Jack Ma Built
- Hit Refresh: The Quest to Rediscover Microsoft's Soul and Imagine a Better Future for Everyone
- Hit Refresh: The Quest to Rediscover Microsoft's Soul and Imagine a Better Future for Everyone
- Autonomous: A Novel
- The 10X Rule: The Only Difference Between Success and Failure
- Everybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are
- Life After Google: The Fall of Big Data and the Rise of the Blockchain Economy

You are on page 1of 7

The data transformation process for PocketBrief uses the Blowfish Algorithm for

Encryption and Decryption, respectively. The details and working of the algorithm are

given below.

Blowfish is a symmetric block cipher that can be effectively used for encryption and

safeguarding of data. It takes a variable-length key, from 32 bits to 448 bits, making it

ideal for securing data. Blowfish was designed in 1993 by Bruce Schneier as a fast, free

alternative to existing encryption algorithms. Blowfish is unpatented and license-free,

and is available free for all uses.

times. The block size is 64 bits, and the key can be any length up to 448 bits. Although

there is a complex initialization phase required before any encryption can take place, the

actual encryption of data is very efficient on large microprocessors.

Blowfish is a variable-length key block cipher. It is suitable for applications where the

key does not change often, like a communications link or an automatic file encryptor. It is

significantly faster than most encryption algorithms when implemented on 32-bit

microprocessors with large data caches.

Feistel Networks

function) into a permutation. It was invented by Horst Feistel and has been used in many

block cipher designs. The working of a Feistal Network is given below:

Split each block into halves

Right half becomes new left half

New right half is the final result when the left half is XOR’d with the result of

applying f to the right half and the key.

Note that previous rounds can be derived even if the function f is not invertible.

1 of 7

PocketBrief

2 of 7

PocketBrief

Has a 64-bit block size.

Has a scalable key, from 32 bits to at least 256 bits.

Uses simple operations that are efficient on microprocessors.

use variable-length shifts or bit-wise permutations, or conditional jumps.

operation. Not precomputing the subkeys will result in slower operation, but it

should still be possible to encrypt data without any precomputations.

For applications with a small key size, the trade-off between the complexity of

a brute-force attack and a differential attack make a large number of iterations

superfluous. Hence, it should be possible to reduce the number of iterations

with no loss of security (beyond that of the reduced key size).

This allows the use of long passphrases for the key without compromising

security.

Uses a design that is simple to understand. This facilitates analysis and increase

the confidence in the algorithm. In practice, this means that the algorithm will be

a Feistel iterated block cipher.

Blowfish is a variable-length key, 64-bit block cipher. The algorithm consists of two

parts: a key-expansion part and a data- encryption part. Key expansion converts a key of

at most 448 bits into several subkey arrays totaling 4168 bytes.

Data encryption occurs via a 16-round Feistel network. Each round consists of a key-

dependent permutation, and a key- and data-dependent substitution. All operations are

XORs and additions on 32-bit words. The only additional operations are four indexed

array data lookups per round.

Subkeys

3 of 7

PocketBrief

Blowfish uses a large number of subkeys. These keys must be precomputed before any

data encryption or decryption.

Encryption

xL = xL XOR Pi

xR = F(xL) XOR xR

Swap xL and xR

After the sixteenth round, swap xL and xR again to undo the last swap.

4 of 7

PocketBrief

Decryption is exactly the same as encryption, except that P1, P2,..., P18 are used in the

reverse order.

Implementations of Blowfish that require the fastest speeds should unroll the loop and

ensure that all subkeys are stored in cache.

1. Initialize first the P-array and then the four S-boxes, in order, with a fixed string.

This string consists of the hexadecimal digits of pi (less the initial 3): P1 =

0x243f6a88, P2 = 0x85a308d3, P3 = 0x13198a2e, P4 = 0x03707344, etc.

2. XOR P1 with the first 32 bits of the key, XOR P2 with the second 32-bits of the

key, and so on for all bits of the key (possibly up to P14). Repeatedly cycle

through the key bits until the entire P-array has been XORed with key bits. (For

every short key, there is at least one equivalent longer key; for example, if A is a

64-bit key, then AA, AAA, etc., are equivalent keys.)

3. Encrypt the all-zero string with the Blowfish algorithm, using the subkeys

described in steps (1) and (2).

4. Replace P1 and P2 with the output of step (3).

5. Encrypt the output of step (3) using the Blowfish algorithm with the modified

subkeys.

6. Replace P3 and P4 with the output of step (5).

7. Continue the process, replacing all entries of the P array, and then all four S-boxes

in order, with the output of the continuously changing Blowfish algorithm.

In total, 521 iterations are required to generate all required subkeys. Applications can

store the subkeys rather than execute this derivation process multiple times.

DESIGN DECISIONS

A 64-bit block size yields a 32-bit word size, and maintains block-size compatibility with

existing algorithms. Blowfish is easy to scale up to a 128-bit block, and down to smaller

block sizes.

The fundamental operations were chosen with speed in mind. XOR, ADD, and MOV

from a cache are efficient on both Intel and Motorola architectures. All subkeys fit in the

cache of a 80486, 68040, Pentium, and PowerPC.

The Feistel Network that makes up the body of Blowfish is designed to be as simple as

possible, while still retaining the desirable cryptographic properties of the structure.

In algorithm design, there are two basic ways to ensure that the key is long enough to

ensure a particular security level. One is to carefully design the algorithm so that the

5 of 7

PocketBrief

entire entropy of the key is preserved, so there is no better way to cryptanalyze the

algorithm other than brute force. The other is to design the algorithm with so many key

bits that attacks that reduce the effective key length by several bits are irrelevant. Since

Blowfish is designed for large microprocessors with large amounts of memory, the latter

has been chosen. But it works equally well on Handheld systems with a decent

microprocessor.

The subkey generation process is designed to preserve the entire entropy of the key and

to distribute that entropy uniformly throughout the subkeys. It is also designed to

distribute the set of allowed subkeys randomly throughout the domain of possible

subkeys. The digits of pi were chosen as the initial subkey table for two reasons: because

it is a random sequence not related to the algorithm, and because it could either be stored

as part of the algorithm or derived when needed. But if the initial string is non-random in

any way (for example, ASCII text with the high bit of every byte a 0), this non-

randomness will propagate throughout the algorithm.

In the subkey generation process, the subkeys change slightly with every pair of subkeys

generated. This is primarily to protect against any attacked of the subkey generation

process that exploit the fixed and known subkeys. It also reduces storage requirements.

The 448 limit on the key size ensures that the every bit of every subkey depends on every

bit of the key.

The key bits are repeatedly XORed with the digits of pi in the initial P-array to prevent

the following potential attack: Assume that the key bits are not repeated, but instead

padded with zeros to extend it to the length of the P-array. An attacker might find two

keys that differ only in the 64-bit value XORed with P1 and P2 that, using the initial

known subkeys, produce the same encrypted value. If so, he can find two keys that

produce all the same subkeys. This is a highly tempting attack for a malicious key

generator. To prevent this same type of attack, the initial plaintext value in the subkey-

generation process is fixed.

The subkey-generation algorithm does not assume that the key bits are random. Even

highly correlated key bits, such as an alphanumeric ASCII string with the bit of every

byte set to 0, will produce random subkeys. However, to produce subkeys with the same

entropy, a longer alphanumeric key is required.

brute-force attack. The subkeys are too long to be stored on a massive tape, so they would

have to be generated by a brute-force cracking machine as required. A total of 522

iterations of the encryption algorithm are required to test a single key, effectively adding

29 steps to any brute-force attack.

The most efficient way to break Blowfish is through exhaustive search of the keyspace.

6 of 7

PocketBrief

References

John Wiley & Sons, New York, 1994.

Block Cipher (Blowfish)

Fast Software Encryption, Cambridge Security Workshop Proceedings

(December 1993), Springer-Verlag, 1994, pp. 191-204.

7 of 7

- Introduction to CryptographyUploaded byAkshay Gautam
- Encryption AlgorithmsUploaded byremer666
- BlowfishUploaded byBridget Smith
- CryptographyUploaded byharsh_cyclone
- itstrategicplan072002Uploaded byAbdalla Jibril
- EMAUploaded byAkhil
- BlowfishUploaded bySachita Nand Mishra
- 0711ijnsa15_Blowfish.pdfUploaded byParkerAllison
- PROTECTION OF KEY IN PRIVATE KEY CRYPTOGRAPHY.Uploaded byIJAR Journal
- Blow Fish AlgorithmUploaded byDil Lip
- A Comparative Literature Survey on Various Image Encryption StandardsUploaded byIJERT.ORG
- Evaluation of Common Encryption Algorithm and Scope of Advanced Algorithm for Simulated Wireless NetworkUploaded byseventhsensegroup
- An Approach for Implementing Security between Base Stations in Cellular Communication SystemUploaded byJournal of Telecommunications
- 9_B.ravi Kumar_authenticated BSS Methodology Final Paper--IISTE research paperUploaded byiiste
- Mtc3 Kallick 15 Ext Handycipher 04 EnUploaded byCasandra Edwards
- asUploaded byabc123
- Lecture 2Uploaded byd3toxed
- Data_Security_Kit_E_Operation_Guide.pdfUploaded byNosirve Solo Una Prueba
- 5 Scan Based Side Channel Attack on Dedicated Hardware Implementations of Data Encryption StandardUploaded byRahul Kottattu
- Secure Data Collection in Wireless Sensor Networks Using Randomized Dispersive RoutesUploaded bybangaram_araji
- Intrusion Response SystemUploaded bysanjeevee9500
- MuGKeG: Secure Multi-channel Group Key Generation Algorithm for Wireless NetworksUploaded bySaad
- Digital SignaturesUploaded byJagdish Rohit
- Using Blockchain in CyberForensicsUploaded byHimanshi Garg
- harari authentication schemeUploaded byankitk_96
- New Text DocumentUploaded bydustboy
- DATA SECURITY IN SMARTPHONES USING BIT-LOCKER TECHNOLOGY.Uploaded byIJAR Journal
- Lecture 3Uploaded byArKay Naobi
- DIGITAL IMAGE WATERMARKING SYSTEMUploaded byNarinderjeet Kaur
- Murder in the Mathematics Department 3 (1)Uploaded byluivito

- Web Caching AlgUploaded byramachandra
- Web Caching ArchitUploaded byramachandra
- Web CachingUploaded byramachandra
- Wake on LAN White PaperUploaded byramachandra
- Uml BasicsUploaded byverma.saket.pramod7132
- SP800-58-finalUploaded byMichael Williams
- Background Voice Over Internet Protocol (VoIP) is a Technology ForUploaded byramachandra
- Title of Dissertation:Uploaded byramachandra
- Uds10 Uds100 User GuideUploaded byramachandra
- UDP ApplicationsUploaded byramachandra
- Traffic Simulation DataUploaded byramachandra
- Traffic DataUploaded byramachandra
- TINY AlgorithmUploaded byramachandra
- The OSI LayersUploaded byFenil Desai
- TestingUploaded byrahulkumbhar
- Tea Tiny AlgorithmUploaded byramachandra
- TCP-OSI Layers DataUploaded byramachandra
- SITE Commands on FTP ServerUploaded byramachandra
- Sh a 256Uploaded byramachandra
- Sh a 1Uploaded byramachandra
- Serial-spec in JavaUploaded byramachandra
- Search AlgorithmsUploaded byramachandra
- Sdlc in BreifUploaded byramachandra
- Pwd AuthenticationUploaded byramachandra
- Path FindUploaded byramachandra
- Password AuthenticationUploaded byramachandra
- Page Replacement Algs DatagoodUploaded byramachandra
- Cryptanalysis of Microsoft’s Point-To-Point Tunneling Protocol (PPTP)Uploaded byramachandra
- OSI ModelUploaded byn43.nitin

- ecosys_fs1325mfp - Quick Installation.pdfUploaded bysteve
- week1Uploaded byMano Ekambaram
- Library Management SystemUploaded byAshiwani N
- IT_ResearchUploaded byLeXy Samuels
- Seebeck coefficient of thermocouples with variationsUploaded byNikhil Jaisinghani
- Sbm AnchorUploaded byMulyo Setiawan
- 6284_4_10.pdfUploaded bynps
- Data Sheet Thermal Wrap TW350_600_800!4!2011_FINALUploaded byAli Alexandra
- Algebra ExerciseUploaded byJose Barrera Galera
- Varistores+VDR_MOV-Catálogo+parcial.pdfUploaded byBaltazar Vargas
- Parts List Us t71 IndicatorUploaded byDaniloSrip
- Operation ManualUploaded byleandromoscatelli
- Flow Charts by SmartDrawUploaded byapi-3806331
- 2002 Ford F250 F-250 Truck Owners ManualUploaded bysandy243
- New Era of Foramen LocationUploaded byIris Sc
- Phonic Powerpod 615 620 SchematicUploaded byelectronicalider
- Bf 03224567Uploaded bytushar
- EIMARace 2011 Event RulesUploaded byIskandar Zulkarnain
- Oggioni - RasUploaded byhoma
- Mathematical Modelling for the Continuous Simulation of a Bicycle - Research and DesignUploaded bySean_T_Robinson
- upload assignment assignment using sql commands submissionUploaded byapi-413377677
- SWITCHUploaded byLuis Garcia Lopez
- 1.01.1 Large Generators en WebUploaded byEvangelos Tsampouris
- Article PNPUploaded byelf11
- XRD Basics 2017 (1)Uploaded byGago_88
- Pathfinder HDS-1 MWD Gamma ToolUploaded bycheeeky_monkey
- zts.sqlUploaded byJaffer Wilson
- 9_2_9Uploaded byAtoui Issam
- Literature Review SNSUploaded byPoornima Eg
- CN2121 BriefingUploaded byKiang Teng Lim

## Much more than documents.

Discover everything Scribd has to offer, including books and audiobooks from major publishers.

Cancel anytime.