Skip to content

Latest commit

 

History

History
24 lines (14 loc) · 985 Bytes

README.md

File metadata and controls

24 lines (14 loc) · 985 Bytes

ope-rb

This gem implements order-preserving symmetric encryption, as described in Boldyreva, 2009.

Usage

require 'ope'

cipher = OPE::Cipher.new(key)
a = cipher.encrypt(456789)
b = cipher.encrypt(891234)

puts b > a     # =>  true

Credits

CryptDB provided a reference implementation for the Boldyreva paper. The code from Caesar was helpful in understanding how the scheme worked from a high-level perspective. The hypergeometric distribution code was adapted from a Fortran implementation from the Association for Computing Machinery and a C implementation used by the R project.

License

This software is released under the GNU Affero General Public License. If this license does not suit your needs, please contact me.