Research
-- Privacy is Key -- |
Research | |
| [ Home ] [ What's New ] [ Download ] [ DataHush Manual ] [ DataHush FAQ ] [ Research ] |
[ Back ]
[ Home ]
|
|
|
Technical Description |
Scientific or Technological ObjectivesEnhanced Data Packaging Technology The goal of our research is to develop an improved method of data packaging combining lossless compression, security and reliability. Current methods of compression, hashing and encryption rely principally on the internal nature of the processable stream itself to create the processed stream.
Arithmetic encoding used for data compression, for instance, essentially examines a processable stream for repeated occurrences of the same string of bits. The stream is then re-arranged to remove redundancies. This results in a new stream containing the same information, but occupying less space. The encoding only takes into account the internal structure of the stream. We hypothesize that for some streams it is possible to transform the stream using a ‘key’ value which would render the stream more compressible by conventional means.
Our initial objective was to find a method of enhanced data compression. This required the building of various tools, assembly of data sources, and preliminary investigations to identify the most fruitful avenues to pursue. During tool development and preliminary investigations, the inter-relation of data compression, randomness and encryption became apparent. It was decided to view the problem of compression in the larger context of packaging data for storage or transmission. Symmetrical EncryptionThe following algorithm combines operations from different arithmetic groups and describes a symmetrical encryption which produces incompressible and (in that sense) strongly encrypted output.
char *EncryptBuffer( char *buf, int buf_len, char *c_key, int c_ptr, int c_len )
BEGIN
int i;
i = 0;
WHILE i IS_LESS_THAN buf_len
BEGIN
buf[ i ] = (char) (buf[ i ] XOR c_key[c_ptr] XOR (c_key[0] * c_ptr));
IF c_ptr IS_LESS_THAN c_len THEN
c_key[c_ptr] = c_key[c_ptr] + c_key[c_ptr + 1];
ELSE
c_key[c_ptr] = c_key[c_ptr] + c_key[0];
ENDIF
IF c_key[c_ptr] IS_EQUAL_TO 0 THEN
c_key[c_ptr] = 1;
ENDIF
c_ptr = c_ptr + 1;
IF c_ptr IS_GREATER_THAN c_len THEN
c_ptr = 0;
ENDIF
i = i + 1;
ENDWHILE
return( buf );
END
The same key is used to both encode the plaintext stream and to decode the ciphertext. There exists a transformation such that a given plain text stream is converted into a corresponding cipher text stream. That transformation is directed by the algorithm above and a key as illustrated below.
The resulting cipher text has the property of being incompressible. As illustrated below, the same transformation can be viewed as a transformation from compressible to incompressible.
Enhanced CompressionOur goal was to build the tools necessary to find and exploit the possibility that for non-trivial cases the inverse operation could be performed. This would allow us to take the ‘incompressible’ output of conventional compression and transform it to a compressible stream. This in turn would allow another round of conventional compression. The end result is enhanced overall compression.
RedundancyRedundancy is inversely proportional to compression. Compression seeks to achieve the elimination of redundant elements in a data stream. Redundancy can be useful, however, should one wish to re-construct or even just detect a damaged data packet. It is common practice to include CRCs or checksums in a compressed data package. These are redundant in that they can be re-calculated from the data stream. However, they are included as a check to ensure that the data package has not been damaged. An ideal data packet should allow the reconstruction of the packet, even if some bits have been lost. Redundancy also exposes data packets to cryptanalytic attack. An ideal data packet should completely mask any redundancy with a layer of encryption applied after compression. Criteria for SuccessOurs is an on-going project centered on developing tools which characterize, find and allow the exploitation of desirable traits in data streams. Our goal is to build working software tools which embody and prove out our concepts. Complete success would be to build a data packaging tool capable of higher rates of compression than traditional techniques, offering an arbitrary rate of redundancy to protect data integrity and encryption which protects the data despite the inclusion of that redundancy. Our immediate goals are to:
Measuring ProgressBuilding reliable software is notoriously difficult. This is especially true when the software embodies new techniques. The work done to date is described in a later section, but we mention here that our measurement of progress is whether or not we have embodied our ideas in at least some software that can actually be demonstrated. With respect to our immediate goals:
With respect to our long term goals:
|
| Questions or comments? Send mail to webmaster@hushserver.com. | Copyright 2000 HushServer Division Site was Last modified: January 07, 2000 | ![]() |
-- Privacy is Key --

Comments
Post a Comment