Current tab features a section simulating the functionality of PostgreSQL with homomorphically encrypted data.
By default, the table represents data as ciphertext, and all newly added data will be immediately encrypted.
Every SQL query is a real query to our backend and can be analyzed using the "Query Log" button.
Our PostgreSQL extension is capable of performing indexing, aggregation, filtering, searchable encryption,
and, in general, a fully functional database flow as if you could work just with plaintext (currently, demo
functionality is limited).
NOTE! All data represented on the web page and in the PostgreSQL database on our backend are constantly encrypted,
and we never decrypt them, except for "highlighting" results to a user to make it human-readable.
Text us here if you want to get an access to real PostgreSQL db with encrypted data
Features list currently available in our demo sandbox for evaluation:
“Show Query log” button. Shows all SQL queries happening to our backend server, where located fully functional PostgreSQL database with our Math-Lock Homomorphic extension. Which you may access upon request to play with.
Add / Delete single raw (“Add Row” button) or delete entire table (“Reset Row List” button)
Edit any existing single row and to see its plaintext (original, not encrypted data) for better interaction.
Indexing (so far standard b-tree, not yet homomorphic index – work in progress)
Aggregation ops such as:
average
sum
Filtering ops such as:
Equal to
Not equal to
Greater than
Less than
Greater than or equal
Less than or equal
Searchable encryption (coming soon). Such feature allows to search over encrypted data without decrypting them ever.
So far, it’s implemented more as filtering (point 6), where we search over encrypted data using logical operators by checking every row/cell. But once we finish work in progress about implementing homomorphic index, then we can do fully functional, fast searchable encryption.
Our custom Math-Lock plugin Performance.
Has been checked on 1 million records, demonstrating aggregations such as average or sum with identical performance to plaintext (not encrypted data) regular operations.
Now more detailed explanation with screenshot:
Here you can:
Open this console, pressing on “Show query log”
It will appear on the top of the screen, so you may need to scroll up. Then you may hold on it and move to convenient position, as per above screenshot.
You change its size only vertically – to make It bigger
You can maximize, minimize or close this window – relative options highlighted.
This feature allows to see every SQL query in depth
To be able to do that, user shall click on the row as per above screenshot. It will show plaintext and allow the edit a record if needed.
Indexing – native functionality, not available for interaction
All aggregation ops will be executed homomorphically, meaning that our
Math-Lock extension will be doing it on encrypted data, and not plaintext.
For example, you are looking for a sum per column. This operation will be requested
to the backend server as real SQL query to calculate sum. Result will be shown as
plaintext on the top of the table, so it can be human readable. In fact, we do not
decrypt this data on db side and just show it to the user for better interaction.
See below screenshot.
In order to use this feature, user can filter by column or entire row.
All filtering operations will be executed homomorphically, meaning that our Math-Lock extension will be doing all these logical operations on encrypted data, and not plaintext.
For example, you are looking for a number equal to 5.9 in column number2, as per above screenshot. This number will be encrypted and sent to the backend server as real SQL query to find the match
As per above screenshot, choose the column, enter plaintext number you are looking for and perform logical operations available in the dropdown menu
Filtering for more than 1 column will be executed using AND operator, so you shall match a correct data for it. Using the second or more column if it doesn’t contain requested data result will be shown as no entry.
Once filter has been applied, in order to clean it user shall click on the X button as per below screenshot
As we’ve mentioned above, so far this not fully functioning while not finished work in progress for implementing homomorphic index.
At the moment, we may “search” over encrypted data using logical operation “equal to”. So, it will find your data anyway.