Research

DHUSHLOG -- Privacy is Key -- Research

[ Home ] [ What's New ] [ Download ] [ DataHush Manual ] [ DataHush FAQ ] [ Research ] [ Back ] [ Home ] Privacy

Technical Description
Encryption Strategies
Advancement
Uncertainty
1996

Scientific or Technological Objectives

Enhanced 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.

fig004.gif

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.

fig005.gif

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 Encryption

The 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.

fig006.gif

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.

fig007.gif

Enhanced Compression

Our 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.

fig008.gif

Redundancy

Redundancy 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 Success

Ours 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:

  • Characterize randomness and order for our purposes
  • Develop tools and build data to test and refine our concepts
  • Build the scaffolding necessary to realize the reasonable use of the tools
  • Build software automatons capable of exploring vector spaces for desirable qualities

Measuring Progress

Building 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:

  • Characterize randomness and order for our purposes – Can we demonstrate software that makes the appropriate transformations – sorting, encoding, decoding? Have we assembled appropriate data – text/image/database/binary?
  • Develop tools and build data to test and refine our concepts – Can we demonstrate working tools which analyze our data? Do we have a working database which is appropriate to the task?
  • Build the scaffolding necessary to realize the reasonable use of the tools. Is it possible to install and run software which embodies any of our concepts?
  • Build software automatons capable of exploring vector spaces for desirable qualities. Can we demonstrate a working program which explores vector spaces with reasonable heuristics and modifies its behavior on the basis of its findings?

With respect to our long term goals:

  • Can we demonstrate software or a software design which exploits our findings – intended or unintended?
  • Can we demonstrate higher compression ratios than conventional techniques?
  • Can we demonstrate strong encryption?
  • Can we demonstrate higher rates of error recovery?

Questions or comments? Send mail to webmaster@hushserver.com. Copyright 2000 HushServer Division Site was Last modified: January 07, 2000 HushServer Site Hosting

Comments

Popular posts from this blog

Password

Using