> We’re thrilled to announce that we’re SOC 2 Type II compliant!

Build native client-side encryption into any application in minutes

Application-layer encryption made simple

Encrypt your most sensitive data before it leaves the application, so the storage layer – and adversaries – only ever see ciphertext. Application native client-side encryption protects data from sophisticated attackers, supply-chain attacks, and insider threats.

CISOs and CTOs say Ubiq makes encryption easy

We’re proud to be highly regarded by our customers, who recognize us as a user-friendly and effective solution to protect sensitive data.





Encryption made effective, for engineering and security teams

Storage and cloud-native encryption controls are not enough

Most at-rest encryption solutions – transparent disk encryption, full disk encryption, etc. – are ineffective against modern threats because they grant admins, key processes, and attackers (who exploit privileged access) implicit access to plaintext data. Eliminate this gap and bridge the divide between engineering, security, and compliance teams with Ubiq’s developer-first, encryption-as-code platform.

For Engineering

Lightweight, prepackaged code and open source encryption libraries that quickly integrate into any application type for native client-side encryption and set and forget key management.

For Security

Enable development teams to quickly build native, client-side data encryption directly into applications, to reduce your breach risk and not slow down the pace of innovation.

For Compliance

Applications built compliant by design and future-proof evolving compliance needs - designed for today and tomorrow’s regulations, with full auditability.

How It Works

We’ve abstracted away the messy and complex world of encryption and key management behind 2 API calls and a few lines of code, so you can confidently build native client-side encryption directly into applications of any type in minutes.

New data generated Existing data requested
Application collects data from normal user input or process.
Application calls local Ubiq library to encrypt the data.
Data is encrypted into ciphertext without leaving your application.
Application stores ciphertext (instead of clear text) in storage.
Data is protected from storage layer compromises.
User or process requests application data.
Application retrieves encrypted ciphertext from storage.
Application calls local Ubiq library to decrypt the data
Data is decrypted without leaving your application.
Data is presented to user or process, as per normal.

Reduce breach risk, by better protecting sensitive data

Encrypt data before it leaves your application, so the storage layer, admins, and adversaries only ever see ciphertext.

Decrease costs, increase program efficiency, and achieve compliance

Reduce costs and save precious resource time by building client-side encryption into any application in minutes as part of your application development lifecycle.

ubiq = require('ubiq-security' 1.0.5)

const credentials =
    new ubiq.Credentials('T31i/+eZAsURqVOO/0WfkGqd',

plaintext_data = 'ABC'

encrypted_data = await ubiq.encrypt(credentials, plaintext_data)

decrypted_data = await ubiq.decrypt(credentials, encrypted_data)

Avoid costly cryptographic failures, with drop-in code and automated key management

Enable robust encryption without complexity and guesswork, by leveraging industry standard, open source encryption libraries and FIPS-140-2 compliant key management and storage.

OWASP A02:2021 – Cryptographic Failures

Encryption, without the complexity.

Developers rule (our) world.

Ubiq’s developer platform enables you to quickly and easily build client-side encryption directly into your application, allowing you to focus on product and customer experiences and less time wasted on encryption, key management, and security.

const ubiq = require('ubiq-security')
// Explicitly set the credentials.

const credentials = new Credentials('', '', '')

// Encrypt a block of data.

const encrypted_data = await ubiq.encrypt(credentials, plainntext_data)

// Decrypt a block of data.

const plainttext_data = await ubiq.decrypt(credentials, encrypted_data)
require 'ubiq-security'
include Ubiq

# Explicitly set the credentials.
credentials = Credentials(access_key_id = "...", secret_signing_key = "...", secret_crypto_access_key = "...")

# Encrypt a block of data.
encrypted_data = encrypt(credentials, plaintext_data)

# Decrypt a block of data.
plaintext_data = decrypt(credentials, encrypted_data)
# Require the Security Client.
import ubiq_security as ubiq

# Explicitly set the credentials.
credentials = ubiq.credentials(access_key_id = "...", secret_signing_key = "...", secret_crypto_access_key = "...")

# Encrypt a block of data.
encrypted_data = ubiq.encrypt(credentials, plaintext_data)

# Decrypt a block of data.
plaintext_data = ubiq.decrypt(credentials, encrypted_data)

struct ubiq_platform_credentials * creds = NULL;
void * ptbuf = NULL, * ctbuf = NULL;
size_t ptlen = 0, ctlen = 0;

 * load credentials from the environment
 * or the credentials file

/* initialize ptbuf and ptlen */

/* Encrypt a block of data. */
ubiq_platform_encrypt(creds, ptbuf, ptlen, ctbuf, ctlen);

/* Decrypt a block of data. */
ubiq_platform_decrypt(creds, ctbuf, ctlen, ptbuf, ptlen);


  * load credentials from the environment
  * or the credentials file
 ubiq::platform::credentials creds;
 std::vector ptbuf, ctbuf;

/* initialize ptbuf */

/* Encrypt a block of data. */
ctbuf = ubiq::platform::encrypt(creds, ptbuf.data(), ptbuf.size());

/* Decrypt a block of data. */
ptbuf = ubiq::platform::decrypt(creds, ctbuf.data(), ctbuf.size());
using UbiqSecurity;

/* explicitly set the credentials  */
var credentials = UbiqFactory.CreateCredentials(accessKeyId: "...", secretSigningKey: "...", secretCryptoAccessKey: "..."); 

/* Encrypt a block of data. */
byte[] plainBytes = ...;
byte[] encryptedBytes = await UbiqEncrypt.EncryptAsync(credentials, plainBytes);

/* Decrypt a block of data. */
plainBytes = await UbiqDecrypt.DecryptAsync(credentials, encryptedBytes);
import com.ubiqsecurity.UbiqCredentials;
import com.ubiqsecurity.UbiqDecrypt;
import com.ubiqsecurity.UbiqEncrypt;
import com.ubiqsecurity.UbiqFactory;

// Explicitly set the credentials.
UbiqCredentials credentials = UbiqFactory.createCredentials("", "", "", null);

// Encrypt a block of data.
byte[] plainBytes = ...;
byte[] encryptedBytes = UbiqEncrypt.encrypt(credentials, plainBytes);

// Decrypt a block of data.
plainBytes = UbiqDecrypt.decrypt(credentials, encryptedBytes);
import "gitlab.com/ubiqsecurity/ubiq-go"
var plaintext []byte = ...

// load the default credentials
credentials, _ := ubiq.NewCredentials()

// encrypt a block of data
ciphertext, _ := ubiq.Encrypt(credentials, plaintext)

// decrypt a block of data
plaintext, _ := ubiq.Decrypt(credentials, ciphertext)
# Initialize credentials into the current session
call ubiq_begin_fpe_session(dataset_names, access_key,
secret_key, secret_crypto_access_key);

# Encrypt a block of data.
select ubiq_fpe_encrypt_cache(plain_text, dataset_name);

# Decrypt a block of data.
select ubiq_fpe_decrypt_cache(cipher_text, dataset_name);
# Querying encrypted data stored in a table
select name, address, ubiq_fpe_decrypt_cache(sensitive_info, dataset_name) from secure_table;

# Inserting encrypted data to a table
insert into secure_table (name, address, sensitive_info) values ("Jeff", "101 Anywhere St",
ubiq_fpe_encrypt_cache(sensitive_info, dataset_name));
# Tear down the Ubiq Session
call ubiq_close_fpe_session(access_key, secret_key);

Robust libraries

Ubiq libraries are available for the most popular programming languages and frameworks.

Learn more >

  • Libraries for major languages
  • Detailed documentation and coding examples
  • Industry standard encryption algorithms
  • FIPS 140-2 Level 3-compliant key storage
  • Your data never leaves your environment
  • Simple integrations & scalable APIs


Ubiq's encryption API transformed our data security from a "checkbox" approach to one that effectively protects sensitive data and significantly enhances our threat model. Even in scenarios where S3 encryption falls short, such as compromised AWS credentials, we're now protected. Implementing Ubiq's solution was incredibly painless, taking only a few hours, a testament to their commitment to customer experience. Ubiq is more than a vendor; they're a trusted security partner.

Lisa Fleming

Product Leader

Ubiq has saved us hundreds of hours in encryption tasks in our engineering and DevSecOps processes, safeguarding billions of sensitive records, from customer PII to financial information. With Ubiq as our partner, we manage encryption efficiently and tackle new security requirements with confidence, saving critical engineering time and driving value to the business, all while ensuring effective data security.

Fortune 100 Financial Services Firm

Security Architect

Ubiq is more than a vendor, they're a true partner and an extension of our team. Implementing their encryption API was one of the most seamless and painless integrations we've ever experienced. In just hours, we began securing sensitive patient data, meeting vital HIPAA requirements with ease. This has reinforced our confidence in managing both our present and future compliance obligations.

Spencer Smith

Executive Director

We employ Ubiq encryption to store sensitive data inside each MongoDB document. But the best thing I love about Ubiq is that the encryption travels with the data. Even if I accidentally expose my S3-bucket to the whole wide world, my data is still safe, and I can control the validity of decryption keys from the Ubiq console. Talk about god-like powers!

Je Sum Yip


Ubiq saved us countless hours by eliminating custom engineering encryption and the burden of cryptographic decision-making from our developers. Their encryption API efficiently protects highly sensitive documents and data. Implementation was very straightforward and clearly designed with developers in mind, offering a familiar customer experience. The Ubiq team is remarkably responsive, supportive, and always to our feature enhancement requests.

Shawn Jonnet

CTO and Chief Architect

Ubiq's encryption API provides robust protection for sensitive data with minimal integration effort, enabling us to effectively reduce the risk of data breaches and strengthen our defense.

Anton Bonifacio


Ubiq has modernized and streamlined our approach to data encryption and key management, simplifying the process and eliminating complexity. With Ubiq, we achieve consistent encryption across our infrastructure, streamlining compliance audits and reducing scope. The ability to seamlessly integrate critical data encryption controls into our development processes has significantly reduced downstream efforts and costs, while removing guesswork and risks from cryptographic decisions.

Karan S.


The adoption and implementation of Ubiq's API was one of our quickest and most effortless technology implementations, done in just a few hours. Ubiq streamlines encryption, making the process of safeguarding sensitive data and implementing top security practices in your application both seamless and comprehensible.

David Emerson


Setup is quick and easy

Ready to get started?

Create a FREE account instantly and start encrypting data or get in touch to discuss a custom package for your organization.