## The DBPBE Encryption AlgorithmBy Jacob StillJanuary 2020 Updated August 2020
Code on GitHub
The Examples at the end ## Encryption
Restrictions on keys are the following: - One password should always result in the same key points on every version and implementation of DBPBE
- The number of key points to be generated is still under consideration, but at least three are required
- No key point can have the same coordinates as any data points
- Key points should be numbered from "top to bottom" (the key point with the largest y value would be first and the key point with the smallest y value would be last)
## Encrypted DataThe encrypted data should be stored in a consistent manner as well. The data should be at least stored in the order it was given to the algorithm. For example, the word "hello" should be stored as the encrypted version of itself (as opposed to "olleh"). As for the individual bytes, the distances should be in the order of the keys. ## Decryption
## ConsiderationsIn order to decrypt the data, one MUST have the password or key-file used to encrypt the data. This is because the decryption process requires vectors. The encrypted data, on the other hand is simply the magnitude portion of a vector. You would still need the starting point and direction. One may think that a way to brute force this is to take all distances and apply them to all data points possible. Then the intersection points of those circles are used to find the key points. While this may be possible, I believe (based on the extremely small number of tests I have performed) that this is not possible. If the number of keys is assumed to be three, applying the distances to each point would result in a unpredictable number of intersection points. In the tests that I have performed, the key point was on only one of these circles and not remotely close to the nearest intersection point. ## ExamplesThese examples will follow the same step numbers for both encryption and decryption. Interactive source of the graphs I used in these examples## Example 1:
In our example, the data is stored as
## Example 2:I am currently working on a second example that would en/decrypt the word "Hello". This is time consuming as I am generating the graphs with mathematical functions. I should have it done soon though. ## Considerations:I am currently working on an example showing the considerations. This is time consuming as I am generating the graphs with mathematical functions. I should have it done soon though. Note: This site is not finished. I will be constantly updating with more research. I am also trying to make it easier to understand. |