Open source project SQLite database with RSA encryption. Discrete logarithm problem for elliptic curves

Android Java SQLite

Open Source JAVA

      A complete working draft of an application for working with a SQLite database, RSA encryption of records, saving, restoring, exporting and importing encryption keys.
      Java project contains complete Java source application code and layout file. Everything is carefully documented, a lot of comments.
      This application project is a ready-made template for your Android applications to work with SQLite databases. Almost all the necessary functions have already been written. Plus, the application can encrypt individual fields of records using a strong RSA encryption algorithm and can use obfuscation to further protect data.
      The necessary classes and methods have already been written and debugged. We add new features to the project or to other repositories. This can save you a huge amount of time when developing your own applications.
      GitHUB Open Source Project
Java SQLite Project >>
      If you need to quickly create an application for working with databases on Android devices, then this project will save you a lot of time. There are many ready-made mathods not only for working with databases, but also for exporting and importing databases, for serious encryption of records of any size.
      I am constantly working on the development of the project. Added support for national alphabets (separate repository), support for data transfer via SMS
      Now the Java client is being debugged to work with the server written in PHP.
      This is commonly used to synchronize data and send requests and receive data.
Unicode Project >>
SMS Send and Receive >>
Java Server >>
      Increasingly, there are reports in the news about the theft of users' personal data. Protecting the data of users registered in your Internet resources is of great importance. One of the important steps of protection is effective data encryption. The second step is to protect access to data decrypted by the system itself.
      In your systems that work with user data, there should be no unencrypted data at all. Address, document numbers, document type, phone numbers, mailbox addresses, etc. - all this should be efficiently encrypted. In databases, there are almost never requests for searches on these parameters.
      Therefore, encrypting this data will not affect the processing of requests. And even the first and last name can be encrypted if you assign a unique identifier to the user.
      For the same security, an elliptic curve algorithm (such as ECDSA) requires a smaller key length than RSA.
      On the other hand, RSA has been used for a long time, everyone knows how to write Java code and process data. But strong RSA requires increasingly longer encryption keys.
      In real commercial use of the RSA encryption algorithm, extremely high security can be achieved by using data obfuscation.
      Here this is not the usual obfuscation of the code, but the transformation of the correct code into "wrong". When the decryption keys or ciphertext are deliberately corrupted and the decryption operation cannot be performed.
      There can be a large number of processing options.
      Two code for such processing will not be too big. For example - repositotry
      public String ObfuscationD(String SourceText, String e, String d)
      This is the easiest replacement option before encryption or after encryption.
      There can be no universal and at the same time reliable methods of obfuscation. The programmer must each time create a new code with new parameters and a new algorithm for "corrupting" the source text.
      Only then can we assume that your data is securely encrypted. If you are encrypting records in a database, you can use different obfuscation algorithms for each field in the record.
      For hackers, this will not be the most pleasant surprise. But it is for this that your programmer can receive a large salary.  

Java Open Source Project - classes and methods for quickly creating your Android projects.
SQLite and RSA Project