Compressing Sensitive Data Manually: Part 2

in compression •  3 years ago 

Here is the link to my part 1 post.

  1. Inspiration of This Project

    This idea was thought of due to 4 issues surrounding paper backups of seed phrases and the methods to compress and encode
    data:

     a. Paper backups are harder to encrypt than storing seed phrases on removable media. Unencrypted texts can be risky as
        anyone who gets hold of your paper backup can read the data easily without any obstacles to get through.
    
     b. Paper backups contain 12 words or 24 words (mostly), and if you loose 1 of the 12 words, you will have to try 2048
        different [words](https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt).
    
     c. Paper backups in its uncompressed form are hard to backup by splitting. Tearing the paper into 3 sections will risk
        losing at least 1 of the backups containing 4 words each.
    
     d. The learning curve for compression and encoding methods (even the easier ones like the huffman coding) are
        really high for a beginner trying to grasp the idea in a short amount of time.
    
  2. How Will The Solution Solve The Problem?

    a. Encryption techniquies are now optional with this method, as there is a step for obfuscation using base 2 as base 2 has
    only 2 states per bit, 1 and 0.

    b. Concatenates all of the data into one string of base 10, if a section of the paper backup is torn, you are able to
    find out the whole key using key splitting.

    c. Remember I mentioned that there is a key splitting function with this method? This ensures that paper backups have redundancy
    without sacrificing any part of the whole text. This means that text reconstruction is possible even if any 1 of the 3 keys is
    lost or torn.

    d. The learning curve for compression and encoding methods is now easier for a beginner to learn. All you need to know is base 2 and
    base 10. This method also allows easier way of encrypting and obfuscating your texts whithout having to know the whole order of
    the reconstruction process with another set of paper See LZ77 and Huffman Coding.

  3. Importance of Encryption And Obfuscation

    When you are young, have you ever tried to pass secrets to your friends through a handwritten note, only to be intercepted by your teacher,
    and for him/her to read through the contents or even worse, saying it out loud to the class? This is possible because your handwritten notes aren't obfuscated.

    Try to imagine this with a seed phrase. Would you like people to know what you were writing? If they get hold of your seed phrase easily, they are able to
    steal all of your funds.

    The aim of encryption is to obfuscate your texts by scrambling your texts so that no one, except the person with the key, can read what you are writing.
    This ensures that people will have a hard time figuring out the key to unscramble your texts through a method called brute forcing

    Now reimagine, if your teacher intercepts your handwritten note this time, he/she will have a hard time trying to figure out what you are trying to say, and therefore no more
    embarrassing moments like reading your texts out loud. Sure, teacher can try to figure out what you are writing but if your base 10 form of your encrypted text is 2 trillion,
    he/she will have to guess the 2 trillion possibilities, starting from 0 all the way to 2 trillion and decode it every single time.

  4. Why Did I Choose This Method of Compression?

    The method of compression mentioned here is similar to a tarball.

    It does not reduce your size of the whole text by shortening repeating words but it does reduce your size through encoding. This method of compression will ensure that your texts are
    bundled up into one object.

    This reduces unnecessary data loss by treating 12 words for example, to a whole sentence. This method of compression also allows you to do key splitting easily without splitting any data in a way
    that will compromise your whole data.

  5. Importance of Encoding

    If you are spending money in another country, you will have to convert your currency from one currency to another. Without the native currency, you are not able to
    spend what you have.

    This is what encoding is like, converting your data from one form to another so that you are able to work with the data easily or do a certain things that you are not
    able to in its original form like calculating alphabets for example.

  6. Key Splitting (Method)

    a. Get the string of numbers.

    b. Split the string into half (if it is not even like 7 words for example, take the longer string split).

    c. Add the 2 strings together.

    And there you go, 3 keys, where 2 of the keys is needed for reconstruction.

  7. Key Reconstruction (x and y)

    x = shorter string of numbers

    y = longer string of numbers

    z = x and y added key

    Simple, just concatenate x and y. but you will have to know which string comes first.

  8. Key Reconstruction (x or y and x)

    If it is z and y, you will have to subtract them and concatenate the result based on the original order of the string before key splitting.
    Likewise for z and x.

Note that z can also be called as the repair key in case any of your x and y keys gets lost. You are also able to repair z by adding x and y.

If there are any questions, feel free to ask them in the comments. Thank you!!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!