DNAcrypt-AI workflow

Quick overview

DNAcrypt-AI generates a random password (alphanumeric + symbols) or cryptographic key (alphanumeric only) based on a user-defined length. The generated password or key is encrypted by mapping it to coordinates of randomly sampled, variable-length DNA sequences from the human genome, referenced to the hg19 and hg38 assemblies.

To decrypt the information, DNAcrypt-AI reconstructs the corresponding DNA sequences using a high-throughput sequence reconstitution pipeline (FAS2rDNA) and interprets them with a sequence-informed machine learning model (Covary).

Supported encodings

  • Alphanumeric (Passwords & Keys): a–z, A–Z, 0–9
  • Symbols (Passwords only): ! @ # $ % ^ & * ( ) - _ + = "

Human genome assemblies

DNAcrypt-AI uses the hg19 and hg38 human genome assemblies as reference spaces for encryption and decryption. These assemblies provide the biological sequence coordinates used to store and retrieve encrypted information. Work is currently underway to expand support to multi-species genome assemblies, which will further increase the genome vocabulary and entropy of DNAcrypt-AI. Suggestions and contributions to improve this capability are welcome.

Encrypting a password or key

  1. Create a user configuration
    • Set char_count to define the desired length
    • Select a use case: Password (alphanumeric + symbols) or Encryption (alphanumeric only)
  2. Run DNAcrypt-AI — Select Runtime → Run all
  3. Download and store your encrypted data — These files will be generated:
    • DNAcrypt_metadata.json
    • kmer_dict.json (only if a custom k-mer dictionary is used)

The encrypted files are automatically downloaded. If your browser blocks downloads, you can retrieve them through the File browser manually from /content/ or /content/DNAcrypt/outputs/.

Decrypting a password or key

  1. Modify the user configuration — set the use case to Decryption
  2. Run DNAcrypt-AI — Runtime → Run all
  3. Upload your encrypted data — always upload DNAcrypt_metadata.json; upload kmer_dict.json only if a custom k-mer dictionary was used during encryption
  4. Wait for decryption to finish — typically 15 minutes or less, depending on genome vocabulary size

Using a custom kmer_dict

Custom kmer_dict (k-mer dictionary) allows users to vary the k-mer-to-character encodings, providing a second layer of encryption or a way to refactor compromised data into new sequences.

During encryption

  1. In the user configuration: set char_count, select the use case, choose Custom under K-mer Dictionary
  2. Run DNAcrypt-AI as usual
  3. Store both DNAcrypt_metadata.json and kmer_dict.json for future recovery

During decryption

  1. Select Decryption as the use case
  2. Run DNAcrypt-AI
  3. Upload both DNAcrypt_metadata.json and kmer_dict.json

Handling and storing encrypted data

Your encrypted files must not be modified. Any loss, alteration, or unintended addition may prevent successful decryption. Tampering with either DNAcrypt_metadata.json or kmer_dict.json will affect recovery of your password or key. File names may be changed, but file contents must remain intact.

See examples →