DDJ January 1996 - COMPRESSION AND ENCRYPTION


FEATURES

PRIORITY QUEUES AND THE STL

by Mark R. Nelson

Included in the C++ Standard Template Library is the priority_queue container adapter, a tool Mark finds perfect for creating Huffman encoding trees.

DYNAMIC MARKOV COMPRESSION

by Tong Lai Yu

Dynamic Markov Compression is a statistical compression technique that produces good results when applied to large binary files.

FASTER FRACTAL COMPRESSION

by D.R. McGregor, R.J. Fryer, P. Cockshott, and P. Murray

Our authors explain how fractal compression works, then present the Fast Fractal Transform--a family of algorithms that achieve a several-hundred-fold speed-up over the simple fractal transform.

DIFFERENTIAL AND LINEAR CRYPTANALYSIS

by Bruce Schneier

Although the venerable Data Encryption Standard has been the workhorse of cryptography for nearly two decades, two new attacks--differential and linear cryptanalysis--are putting DES to the test.

EVALUATING DATA-COMPRESSION ALGORITHMS

by G. Jason Mathews

Before incorporating data compression into data-management software, Jason had to evaluate a variety of compression algorithms. Here is his report.

COLOR QUANTIZATION USING OCTREES

by Dean Clark

Octree quantization is a color-quantization technique that's both space efficient and fast. Dean discusses the algorithm, then implements it in C.

EXTENDING MFC

by Stefan Hoenig and Scot Wingo

Function-based interfaces don't give you object-oriented benefits, even when using C++ and frameworks like MFC. Stefan and Scot show you how to extend existing MFC classes to take advantage of object-oriented principles.

RAMDOMNESS AND THE NETSCAPE BROWSER

by Ian Goldberg and David Wagner

No one was more surprised than Netscape Communications when a pair of computer-science students broke the Netscape encryption scheme. Ian and David describe how they attacked the popular Web browser and what they found out.

LINE-SEGMENT CLIPPING REVISITED

by Victor J. Duvanenko, W.E. Robbins, and R.S. Gyurcsik

In an effort to improve line-clipping performance, our authors build on the Cohen-Sutherland line-clipping algorithm, extend it to 3-D, and introduce the Sutherland-Hodgman clipping algorithm.

EMBEDDED SYSTEMS

PASSWORD FILES

by Trevor J. Pope

Many embedded systems require access control. Trevor implements the MD5 message-digest algorithm to implement one-way encryption of passwords.

NETWORKED SYSTEMS

TCP/IP AND WINDOWS 95

by Andrew Wilson and Peter D. Varhol

Andrew and Peter present a TCP/IP-based chat program that demonstrates the basics of network communication under Windows 95.

EXAMINING ROOM

MULTIPLE INHERITANCE FOR MFC 4.0

by Jean-Louis Leroy

Jean-Louis finds out what's required to add multiple inheritance to Version 4.0 of the Microsoft Foundation Classes library.

PROGRAMMER'S WORKBENCH

A TARGA VIEWER IN BORLAND DELPHI

by Gunter Born

After examining the TARGA graphics file format, Gunter builds a TARGA viewer using Borland's Delphi development environment.

COLUMNS

PROGRAMMING PARADIGMS

by Michael Swaine

Alan Cooper's ideas about goal-centered user-interface design give Michael food for thought before he returns to public-domain programming languages.

C PROGRAMMING

by Al Stevens

After attending the Software Development '95 East conference, Al decides it's time to examine the latest in the ANSI C++ standardization process.

ALGORITHM ALLEY

edited by Bruce Schneier

Burt Kaliski and Matt Robshaw examine the subject of multiple encryption, paying particular attention to repeated encryption with the same cipher.

PROGRAMMER'S BOOKSHELF

by Charles Pfefferkorn

If you need to write localized software, books such as Software Internationalization and Localization: An Introduction, Understanding Japanese Information Processing, and Developing International Software for Windows 95 and Windows NT will get you started.

FORUM

EDITORIAL

by Jonathan Erickson

LETTERS

by you

SWAINE'S FLAMES

by Michael Swaine

PROGRAMMER'S SERVICES

OF INTEREST

by Monica E. Berg