PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Thư viện số học được mã hóa đơn giản (SEAL) và con dấu ::Biến văn bản mã

Câu trả lời ngắn gọn là không có cách nào khác để truy cập dữ liệu bản mã trong SEAL. Con trỏ được trả về bởi Ciphertext::data sẽ cung cấp cho bạn quyền truy cập trực tiếp vào dữ liệu bản mã và theo nghĩa đó cho phép bạn thực hiện bất kỳ loại tính toán nào trên đó, ví dụ:chuyển đổi thành một chuỗi mà con người có thể đọc được nếu vì lý do nào đó bạn muốn làm điều đó.

Tất nhiên để làm bất cứ điều gì dễ hiểu, bạn cần biết bố cục dữ liệu của bản mã. Trong lược đồ BFV, một bản mã bao gồm một cặp đa thức (c 0 , c 1 ) với kích thước lớn (kích thước coeff_modulus ) các hệ số. Vì hoạt động trên các đa thức có hệ số lớn như vậy là không thuận tiện, SEAL 2.3.1 thay vào đó sử dụng coeff_modulus tổng hợp và lưu trữ cả c 0 và c 1 modulo từng thừa số nguyên tố được chỉ định trong coeff_modulus (biểu thị các yếu tố này q 1 , q 2 , ..., q k ). Mỗi q i phù hợp với một từ 64 bit, vì vậy tất cả các đa thức 2k này đều có hệ số kích thước từ.

Bố cục dữ liệu hệ số bản mã như sau (liền kề trong bộ nhớ):

[c 0 mod q 1 ] [c 0 mod q 2 ] ... [c 0 mod q k ] [c 1 mod q 1 ] [c 1 mod q 2 ] ... [c 1 mod q k ]

nơi mỗi [c i mod q j ] giống như

[c 0 [0] mod q j ] [c 1 [0] mod q j ] ... [c n-1 [0] mod q j ]

Ở đây tôi đã sử dụng c i [k] để biểu thị hệ số bậc k của c i . Lưu ý rằng mỗi hệ số được lưu trữ trong uint64_t .

Ciphertext::data trả về một con trỏ đến hệ số không đổi của c 0 đa thức đối với mô đun đầu tiên trong coeff_modulus của bạn , tức là đến c 0 [0] mod q 1 . Ngoài dữ liệu hệ số này, Bản mã chứa một số trường khác mà bạn có thể đọc bằng cách sử dụng các hàm thành viên.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đánh máy chuỗi thành số nguyên

  2. Nhận thế kỷ từ một ngày trong PostgreSQL

  3. Cách hiểu một PHÂN TÍCH GIẢI THÍCH

  4. Ẩn danh PostgreSQL theo yêu cầu

  5. Làm thế nào để xử lý một giá trị tùy chọn được trả về bởi một truy vấn bằng cách sử dụng thùng postgres?