RAM-LFE
RAM-LFE нь "Random-Access Machine Laconic Function Evaluation" гэсэн үг юм. Iroha -д энэ нь олон нийтийн бодлого зангилаа дээр байдаг, гэхдээ үнэлгээчийн логик, нууц эсвэл түүхий эд өгөгдлийг дэлхийн улс орнуудад бичихгүй байх ёстой хөтөлбөрүүдийн ерөнхий нууц функцын давхар юм. Энэ нь SORA Nexus тодруулгын урсгал, жишээлбэл хувийн утсаар эсвэл элс суудлын хайлтайгаар ашигладаг бөгөөд програм хангамжийн гүйцэтгэх туслах Torii гэж нэрлэгдэж болно, хэрэв түймрийн хувилбар нь аппликейшнээр чиглэсэн замыг боломжуулдаг бол.
Сүлжээ нь бодлогын үүрэг гүйцэтгэх болон хүлээн авах сануулгын баталгаажуулах метадэтгэлийг хадгалдаг. Худалдагч эсвэл Torii гүйлгээний цаг нь нууцлагдсан хөтөлбөрийг үнэлдэг, зөвхөн зөвшөөрөлтэй гаргалыг буцааж, үйлчлүүлэгчид, дэмжлэгийн хэрэгсэл, номын тоног төхөөрөмжүүдийн заавар бүртгүүлсэн бодлогын эсрэг шалгаж болно гэсэн батламжийг нэгтгэж байна.
Тодруулбал
Үүнд нэрлэх нь чухал юм.
| Урьдчилгаа | Энэ нь юу вэ? |
|---|---|
ram_lfe | Гадаад нууцлагдсан функцын дүгнэлт: хөтөлбөрийн бодлого, үүрэг гүйцэтгэх хүлээн авах болон хүлээн авах баталгаажуулалтын хэлбэр. |
BFV | Brakerski/Fan-Vercauteren хомоморфик шифрлэлтийн схема RAM-LFE шифрлэгдсэн өгөгдлийн хяналтын хэсгүүдээр ашиглагддаг. |
ram_fhe_profile | BFV-д зориулсан програмчлагдсан цахилгаан үйлдвэрийн машины тодорхой метабараа. Энэ нь RAM-LFE-ийн хоёр дахь нэр биш юм. |
Мэдээллийн загварын хувьд RamLfeProgramPolicy болон RamLfeExecutionReceipt нь RAM-LFE хэлбэрүүд юм. BFV параметр, шифр бичгийн хавсралт, нууцлагдсан RAM-FHE хөтөлбөрийн хувилбар нь бодлогын хэрэглэгдэх шифрлэсэн гүйцэтгэх хяналтын хэсэгт хамаарна.
Энэ нь юуг бичдэг вэ?
RAM-LFE хөтөлбөрийн бодлого нь дэлхийн хэмжээнд program_id бүртгэгдсэн бөгөөд энэ бодлого нь:
- тухайн хуулийг идэвхжүүлэх, идэвхгүй болгох, эсвэл өөрөөр хэлбэл өөрчлөн өөрчлөх боломжтой эзэмшигч дансыг
- үйлчлүүлэгчдэд зарласан хяналтын түвшин
signedэсвэлproofгэсэн хүлээн зөвшөөрөл баталгаажуулах хэв маяг.- нууцлагдсан хөтөлбөрийн метабараа болон үнэлгээний нууцыг хамгаалах үүрэг
- гарын үсэг зурсан түлхүүгийн шийдвэрлэлийн олон нийтийн цөм
- BFV параметр,
ram_fhe_profileгэх мэт олон нийтийн шифрлэгдсэн өгөгдлийн метабараа сонгох activeтамга нь бодлогын шинэ түлхүүжилтийг гаргах эсэхээ хянах
Хаалсан нууц, энгийн бичгийн тодруулгын үнэ цэнэ, нуугдсан хөтөлбөрийн биеийг дэлхийн байдалд хадгалахгүй. Клиентууд үүрэг даалгавар, ил тод хаш, хүлээн авах хаш, шифрлэлийн текст, хөтөлбөрийн харгалзлыг ил тод протоколын үнэ цэнэтэй гэж үзэх ёстой.
Хөдөлмөрийн дэглэм
Одоогийн RAM-LFE дэмжлэг нь гурван хяналт шалгуурч дээр төвлөрсөн байна:
| Хөдөлмөрийн сүүл нь | Хэрэглээ |
|---|---|
hkdf-sha3-512-prf-v1 | PRF үүрэг хариуцсан үнэлгээ. |
bfv-affine-sha3-256-v1 | BFV-ийн дэмжлэгтэй нууцлагдсан танихын үнэлгээ шифрлэсэн тодруулгын шугам дээр. |
bfv-programmed-sha3-256-v1 | BFV -ийн дэмжлэгтэй програмчлагдсан гүйцэтгэх шифрлэсэн регистрийн болон дурсгалын замаар. |
Identifier-ийн бодлогын хувьд BFV програмчлагдсан бэкэнд нь орчин үеийн чухал замаар байдаг. Энэ нь гарын үсэгт хэвийн өгөгдлийг орон нутгаар шифрлэх боломжийг олгодог, шийдвэрлэгч транзакцынд олон нийтийн идентификаторийг харахгүйгээр үнэлгээ хийх боломжтой гаргах хэшиг бүртгэлтэй хөтөлбөрийн бодлоготой холбодог хүлээн зөвшөөрөл буцааж өгдөг.
Математик
Энэ хэсэг нь одоогийн RAM-LFE код ашиглаж буй хэрэгжилтийн түвшний алгебраг тодорхойлдог. Энэ нь аюулгүй байдлын баталгаа биш, энэ нь бодлого, хүлээн зөвшөөрөл болон үйлчлүүлэгчдийн тохиролцсон тодорхойлох шифрлэгдсэн үнэлгээний загвар юм.
Үндсэн тэмдэглэл
Хөгжүүл:
- (H(m)) бол Iroha
Hash::new(m): Blake2b-32mдээр, эцсийн байтын хамгийн бага чухал хэсгийг1-д гаргана. - (N(x)) нь
x-ийн Norito санхүүгийн код байх. - (a \parallel b) нь байт шугамтай холболт юм.
- (\operatorname{le64}(i)) нь тэмдэглэлгүй бүрэн тоогоор 8 байтын жижиг анд кодируулсан байх.
- (s) дэлхийн орнуудын орчинд хадгалагдаж буй нууцыг шийдвэрлэхээр байх.
- (P) нь төрийн бодлогын үзүүлэлт байх.
- (A) нь холбогдох мэдээллийг хүснэ.
- (x) нь Norito-ээр кодлогдсон шифрлэгдсэн өгөгдлийн хавсралт эсвэл хориотой байт байх болно, энэ нь бэкэндээс хамааран.
RAM-LFE нь доменийн хооронд хуваагдсан хашиг ашигладаг. Доменүүдийн нэрийг дараах формулаар зориулалтаараа нэрлэдэг; тэдгээрийн одоогийн байт жирүүд:
| Символ | Доменийн шугам |
|---|---|
| (D_{\mathrm{policy}}) | iroha.ram_lfe.policy.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{secret}}) | iroha.ram_lfe.policy_secret.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{salt}}) | iroha.ram_lfe.hkdf_salt.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{hkdf_opaque}}) | iroha.ram_lfe.opaque_info.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{hkdf_receipt}}) | iroha.ram_lfe.receipt_info.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{opaque}}) | iroha.ram_lfe.opaque_hash.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{receipt}}) | iroha.ram_lfe.receipt_hash.hkdf_sha3_512_prf.v1 |
| (D_{\mathrm{affine_circuit}}) | iroha.ram_lfe.bfv_affine.circuit.v1 |
| (D_{\mathrm{affine_opaque}}) | iroha.ram_lfe.bfv_affine.opaque_hash.v1 |
| (D_{\mathrm{affine_receipt}}) | iroha.ram_lfe.bfv_affine.receipt_hash.v1 |
| (D_{\mathrm{program_memory}}) | iroha.ram_lfe.bfv_program.memory.v1 |
| (D_{\mathrm{program_opaque}}) | iroha.ram_lfe.bfv_program.opaque_hash.v1 |
| (D_{\mathrm{program_receipt}}) | iroha.ram_lfe.bfv_program.receipt_hash.v1 |
| (D_{\mathrm{program_digest}}) | iroha.ram_lfe.bfv_program.digest.v1 |
| (D_{\mathrm{output}}) | iroha.ram_lfe.output_hash.v1 |
| (D_{\mathrm{id_opaque}}) | iroha.ram_lfe.identifier.opaque_hash.v1 |
| (D_{\mathrm{id_receipt}}) | iroha.ram_lfe.identifier.receipt_hash.v1 |
| (D_{\mathrm{bfv_keygen}}) | iroha.crypto.fhe.bfv.keygen.v1 |
| (D_{\mathrm{bfv_encrypt}}) | iroha.crypto.fhe.bfv.encrypt.v1 |
| (D_{\mathrm{id_keygen}}) | iroha.crypto.fhe.bfv.identifier.keygen.v1 |
| (D_{\mathrm{id_slot}}) | iroha.crypto.fhe.bfv.identifier.slot.v1 |
Улс төрийн үүрэг гүйцэтгэх
Аливаа бодлогын үүрэг нь олон нийтийн параметр, нууц шийдвэрлэх тагнуулыг хязгаарладаг. Нэгдүгээрт, нууцыг тусдаа хийх:
Дараа нь бодлогын бүрэн шилжилтийг кодлуулж:
нийтлэгдсэн бодлогын хэш нь:
Захиргааны зах зээлийн PolicyCommitment нь
Хэтгэл нь гүйлгээний тайлангаас ижил үнэ цэнийг дахин тооцоодог. Хэрэв сэргээн сурвалжлагдсан хаш ялгаатай бол үнэлгээ нь үүрэг гүйцэтгэлийн зөрчлийн хүрээнд амжилтгүй болно.
HKDF-SHA3-512 Хөдөлмөрийн эргэлт
hkdf-sha3-512-prf-v1ын хувьд үр дүн нь хэвийн оруулсан өгөгдлийн өөрөө байдаг боловч ил тод тодорхойлогч болон хүлээн авлагын хаш нь нууцтай холбогдсон PRF үр дүн юм.
Хэрэглэлийн шилжилтийн хувилбар:
HKDF тус, хиймэл тохиолдолтой ач холбогдол нь:
Өргөдлийн бус материал өргөжүүлэн хэшлэгдсэн:
Өргөдлийн материалын дагуу нээлттэй тэмдэгт нь нэмэлтээр холбогдсон байна:
Хөдөлмөрийн хоолой нь:
BFV Тэмцэг
BFV нь сүлжээн дээр суурилсан гомоморфик шифрлэлтийн схема юм. "Гомморфик" гэдэг нь програм нь шифрлэсэн үнэ цэнэүүдийг нэмж, олон дахин нэмэгдүүлж, уншилт хийсний дараа энгийн текстний үнэ цэнэүүдэд нэмэлт, олонлогыг хийж байсантай адил үр дүнг олж авах боломжтой гэсэн үг юм.
RAM-LFE ын хувьд BFV нь шифрлэгдсэн орж ирэх механизмын хэлбэрээр ашигладаг:
- Мөнгөмбөг нь цахим хаяг, утасны дугаар гэх мэт хувийн үнэ цэнэтэй байдаг.
- Мөнгөмбөг нь байтдыг жижиг бүрэн тооны шугамд өөрчлөх болно.
- Бүх слот нь шийдвэрлэхчийн BFV олон нийтийн түлхүүрээр шифрлэгдсэн байдаг.
- Хөдөлгөөрч нь нууцлагдсан хөтөлбөрийг эдгээр шифрлэгийн текст дээр үнэлдэг.
- Хөгжлийн цаг нь зөвхөн нууцлагдсан хөтөлбөрийн гарааны нэгийг унтрааж, тэмдэглэж эсвэл хүлээн зөвшөөрөл баталгаажуулна.
BFV нь томоохон бүтэн тооны арифметик, ойролцооны арифметик биш юм. Тийм учраас энэ нь шилжин нүктейн загварын дүгнэлтээс илүү тодорхойлох байт болон жижиг модулийн тооцоололд тохиромжтой юм. Iroha-ийн өнөөгийн BFV хэрэглээний хувьд шифрлэгдсэн мөч бүр нэг скалар үнэ цэнэтэй модуль (t), ихэвчлэн байт эсвэл байт урттай талбайг тээдэг. Шифрлэлийн текст өөрөө илүү том бүрэн бүтэн тооны модуль (q) -д амьдарч байна. (q) болон (t) хоорондын дутагдал нь шифрлэлт, гомоморфик үйл ажиллагаанаас үүдэлтэй дуу чимээний нэвтрүүлэг үүсгэх боломжийг олгодог.
BFV шифрлэгийн текст нь хоёр полиномийн бүрэлдэхүүнтэй:
Үндсэн нууц товч нь (s_k) өөр олон талт юм.
Хэрэв шифр бичгийг зөв боловсруулж, дуу чимээ нь хангалттай бага байгаа бол (v) нь хэмжээнд тодорхой бичгийн ойролцоо байдаг. Цургалтын явцад " plaintext coefficient modulo (t)" нь сэргээгддэг. Ашигтай шинж чанар нь шифр бичгийн үйлдлүүд энэ бүтцийг хадгалж байдаг:
| Жинхэнэ үйл ажиллагаа | Шифрлэгийн үйлдэл |
|---|---|
| (m+n) | Шифр бичгийн бүрэлдэхүүн хэсгийг нэмнэ. |
| (m+\alpha) | (c_0)-д хэмжээнд тодорхой бичгийн тогтмол нэмнэ. |
| (\alpha m) | Хоёр ч шифр бичгийн бүрэлдэхүүн хэсгийг (\alpha) хэмжнэ. |
| (mn) | Шифр бичгийн олон хэсгийг нэмэгдүүлж, дахин хэмжүүлээд, дараа нь эргүүлнэ. |
Хоёр бүрэлдэхүүнтэй шифрлэгийн хоёр бүтээгдэхүүний үр дүн нь (1), (s_k), (s_k^2) зэрэг хэлбэрээр шифрлэлийн гурван бүрэлдэхүүнд шифрлэгийг бий болгодог. Relinearization нь (s_k^2) терминийг хэвийн хоёр бүрэлдэхүүнтэй шифрлэгийн текст рүү буулгахад хэвлэгдсэн үнэлгээний түлхүүр ашигладаг. Энэ нь мөн адил шифрлэлийн текст хэлбэрийг ашиглан дараагийн нэмэлт, үр дүнг хадгалах болно.
BFV нь мөн "хүйцлэгддэг" байдаг: шифрлэсэн үйл ажиллагаа бүр зарим шуугины төсөв хэрэглэдэг. Энэ хэрэгжилт энэ төсвийн шинэчлэл хийхэд шифрлэлийн текстүүдийг эхлүүлэхгүй юм. Үүний оронд, RAM-LFE жижиг ram_fhe_profile хэвлүүлэн зөвхөн хязгаарлагдмал нуусан хөтөлбөрийн хэлбэрийг хүлээн зөвшөөрдөг. Энэ нь шалгаруулалтыг параметрын багтаамжийн дэмжсэн гүнзгийрлийн дотоод хэсэгт хадгалж байна. Одоогийн програмчлагдсан хувилбар нь тогтмол регистрийн тоо, тогтмол дурсгалын замын тоо, хамгийн ихдээ нэг шифр бичиг-шифр бичгийн үр дүнг програмчилсан алхамд тусгаж өгдөг.
Энэ RAM-LFE загварын хувьд BFV нь үйлчлүүлэгчдийн өгөгдлийг олон нийтийн томоохон бүртгэлийн мэдээллээс болон зөвхөн гүйлгээ эсвэл чиглэлийн ашигтай ачааллыг харах ажиглагчдаас нуудаг. Энэ нь зангирал өөрөө санамсарч шифрлэсэн хөтөлбөрүүдийг гүйцэтгэдэг гэсэн үг биш юм. Torii resolver runtime нь хэвээр BFV нууц материалыг эзэмшдэг, тохируулсан нууцлагдсан хөтөлбөрийг үнэлдэг, зөвшөөрөлтэй үр дүнг уншилдаг бөгөөд үр дүнд баталгаажуулдаг.
Идентификатор ашиглах тохиолдол нь зориулалтаар энгийн төлөөлөл сонгодог. Нормализацсан жиргийг:
[length, byte_0, byte_1, ..., byte_n, 0, 0, ...]Аливаа элементийг өөрийн гэсэн BFV скалар шифр бичгийн хэлбэрээр нууцалдаг. Энэ хэлбэр нь хэвийн болгох, хуудасны баталгаажуулалтыг тодорхой болгож, хөрөнгийг олон нийтийн параметрүүдээс нууцалт шаардлагыг бий болгодог бөгөөд шийдвэрлэгчэд тэнцүү нууцалсан өгөгдлийг тогтвортой хүлээн зөвшөөрөл тэмдэглэлт бүртгүүлэх боломжийг олгоно.
BFV Гулгалтын загвар
BFV дэргэд нь negacyclic polynomial ring ашигладаг:
болон энгийн текст:
хаана:
- (n) нь
polynomial_degree, хоёр хүчтэй - (q) бол
ciphertext_modulus - (t) бол
plaintext_modulus - (q > t) болон (t \mid q)
- (\Delta = q/t)
- (B = 2^{\mathrm{decomposition_base_log}})
Бэлэн текст коэффициентийн вектордыг тус бүрийн коэффициент хэмжүүлснээр кодлуулж болно:
Дэкрипцийн төв-лифтүүд нь:
дараа нь (R_t) гэж дахин эргүүлнэ:
Энд (s_k) бол BFV нууц товчлол, гаднах RAM-LFE шийдвэрлэх нууц (s) биш.
BFV Үндсэн үе
Шифрлэгдсэн тодруулгын өгөгдлийн хувьд BFV товч материал нь шийдвэрлэхчийн нууц болон холбогдох мэдээллийн хувьд тодорхой:
BFV RNG нь дараах байдлаар тариалагддаг:
Үндсэн генераторын үлгэр жишээ:
- (s_k \in {-1,0,1}^n), төлөөлөгч модул (q)
- (a \leftarrow R_q) ижил төстэй
- (e \in {-1,0,1}^n)
Олон нийтийн гол нь:
Цаашид шугамжуулахын тулд (s_k^2) нь (R_q)-ийн өнгөний бүтээгдэхүүн байх ёстой. Нэг үндсэн-(B) цифр (j), жижиг хуваарилалтын үлгэрэл (a_j) болон (e_j) гэсэн үзлэг, дараа нь:
Олон нийтийн BFV бодлогын метабараа нь (((n,q,t,B)), олон нийтийн ач холбогдол, болон max_input_bytes эзэмшдэг. BFV нууц ач холбогдол болон relinearization ач холбогдол нь шийдлийн ажиллагаанд үлдэнэ.
BFV Шифрлэлт, үйл ажиллагаа
Нүүр хуудас (m) -ийг шифрлахын тулд хэрэгжүүлэгч нь дараахь ChaCha20 RNG-ийн өөр үр тариалан ордог:
Энэ нь (u,e_1,e_2 \in {-1,0,1}^n) үлгэрийг авч, тооцоолдог:
Шифрлэгийн текст нь (c=(c_0,c_1)).
Хомоморфийн нэмэлт нь бүрдлийн хувьд:
Зөвхөн (c_0) нөлөөгөөр өөрчлөлтийн коефициентид тайван бичгийн скалар (\alpha) нэмнэ:
Нүүр хуудас (\alpha) хэмжээнд хоёр бүрэлдэхүүн хэсгийг давхарлах:
Хоёр шифрлэгийн текст (c=(c_0,c_1)) болон (d=_0,d_1)), шифр бичгийн үржихүйн хамгийн түрүүнд гурван хэмжээний шифр бичгийг тооцож, аливаа коефициентийг эргэн нь (t/q):
Дээрх бүх бүтээгдэхүүн нь (R_q) дахь негацикликийн эргэлтийн бүтээгдэхүүнүүд юм. Дараа нь (\tilde c_2) нь үндсэн-(B) олон төрөлд хуваагдана:
болон эргэн шуурхай:
Үр дүн нь дахин BFV хоёр бүрэлдэхүүнтэй шифр бичлэг юм.
Мэдээний шифр бичгийн хуудас
Мэдээллийн нэвтрүүлэгний байт шугам:
scalar slots-д кодлогдсон:
болон үлдсэн бүх мөрийтэй нь max_input_bytes + 1 хүртэлх нөлөөтэй байдаг. scalar мөрийтэний нэг бүр мөрийтэл-нурын нягт бичгийн олон тооны ([m_i]) гэж шифрлэгдсэн байна.
Шифрлэгдсэн тодруулгын хуудас:
(M=\mathrm{max_input_bytes})
BFV Өргөдлийн дэглэм
Үүнд: bfv-affine-sha3-256-v1, гүйлгээний цаг нь анх BFV гол материал (s) болон (A). Үүнээс үүдэлтэй олон нийтийн параметр нь зангилааны дотор хүлээлгэн өгсөн олон нийтийг хамарсан параметртой яг нийцэх ёстой.
Афины дугуйны үр тариа нь:
Энэ үржмэлээс гүйцэтгэх хугацааны шинжилгээ, modulo (t), 32 шугамтай хамааралтай замаар:
(m_i) нь шифрлэгдсэн тодруулгын хуудас юм. Гомоморфын хувьд шифрлэлийн текст дээр ижил үнэ цэнэ тооцоо:
Тус шийдэл нь (C_j) аль алиныг уншилдаг, бүх дараах тайван бичгийн коэффициентийг нөлөөгөөр хангах шаардлагыг тавьдаг, коэффициент-нурын үнэ цэнийг байт руу өөрчлөх ба хэлбэр:
Дараа нь:
BFV Програмчлагдсан хяналтын хэсэг
bfv-programmed-sha3-256-v1ын хувьд олон нийтийн параметр нь BFV тодруулгын шифрлэлийн параметри болон нууцлагдсан хөтөлбөрийн дигестийг багтаасан:
Одоогийн RAM-FHE хувилбар нь:
| Газар | Үр дүн |
|---|---|
profile_version | 1 |
register_count | 4 |
memory_lane_count | 32 |
ciphertext_mul_per_step | 1 |
encrypted_input_mode | resolver_canonicalized_envelope_v1 |
min_ciphertext_modulus | (2^{52}) |
Torii -д ирүүлсэн энгийн бичгийн өгөгдлийг гүйцэтгэхээс өмнө ижил BFV хавсралтад шифрлэдэг. Энэ сервер талын шифрлэлийн тодорхойлолт нь:
Гадаад руу нэвтрүүлсэн шифрлэгдсэн өгөгдлийн хувьд, шийдвэрлэгч идентификаторны хувцасыг уншиулж, гүйцэтгэхээс өмнө энэ тодорхойлолттай хувцас дээр дахин шифрлэдэг. Энэ каноникал нь хүлээн авах хэшүүдийг BFV шифрийн текстээр тогтвортой байлгана.
Эхний шифрлэгдсэн дурсгалын шугам нь:
32 замын бүрт (r_j \in [0,t)) нэвтрүүлж, BFV шифрчилсэн текст (r_j) хадгалдаг. нууцлагдсан хөтөлбөр нь дараа нь шифрлэгдсэн регистрийн болон шифрлэсэн дурсгалын дээр гүйцэтгэдэг:
| Сургалтын | Алгебра |
|---|---|
LoadInput(dst, i) | (R_{\mathrm{dst}} \leftarrow C_i) |
LoadState(dst, j) | (R_{\mathrm{dst}} \leftarrow S_j) |
StoreState(j, src) | (S_j \leftarrow R_{\mathrm{src}}) |
LoadConst(dst, a) | (R_{\mathrm{dst}} \leftarrow \operatorname{Enc}(a) ) |
Add(dst, a, b) | (R_{\mathrm{dst}} \leftarrow R_a + R_b) |
AddPlain(dst, src, a) | (R_{\mathrm{dst}} \leftarrow R_{\mathrm{src}} + a) |
SubPlain(dst, src, a) | (R_{\mathrm{dst}} \leftarrow R_{\mathrm{src}} - a) |
MulPlain(dst, src, a) | (R_{\mathrm{dst}} \leftarrow aR_{\mathrm{src}}) |
Mul(dst, a, b) | (R_{\mathrm{dst}} \leftarrow R_aR_b), дараа нь дахин шугамжлах |
SelectEqZero(dst, cond, z, nz) | (R_{\mathrm{cond}}) шифрлэх; нуруу бол (R_z) сонгох, өөрөөр хэлбэл (R_{nz}). |
Output(src) | (R_{\mathrm{src}}) нь гарааны бүртгэлийн жагсаалтад нэмнэ. |
Сургалтын тас дууссан дараа шийдэгч нь гарааны бүртгэлийг унтраач, нөлөөний коефициентийг байт болгож, эдгээр байтыг холбодог:
Үндсэн хэшүүд нь:
Урьдчилсан програмчлагдсан тодорхойлогчийн тас нь 64 нэвтрүүлгийн шугамтай байдаг. (i) хоолонд бүртгүүлэх шугам, (i \bmod 32) дурсгалын замыг борлуулах, тэдгээрийг нэмж, үр дүнг гаргах:
Үргэлтийн хэшүүд, хүлээн авах
RAM-LFE гүйцэтгэлийн нийтлэг хүлээн зөвшөөрөл нь түүхий эдийг гараагүй, гарааны хэшиг гараагүй:
Torii RAM-LFE гүйцэтгэх түлхүүгийн хувьд холбогдох өгөгдэл нь програм хангамжийн тодорхойлогч байт юм:
Гаалийн бичгийн гарын үсэг зурсан хэрэглээний ачаалал:
signed хэлбэрээр:
Хяналт шалгалт resolver_public_keyээр гарын үсэг хяналтыг шалгаж, эдгээр тэнцвэрлэлийн бүгд:
Хэрэв дуудлага өгөх хүн output_hex нийлүүлж байгаа бол шалгагч мөн:
proof хэлбэрээр баталгаажуулалт нь гарын үсэг бус баталгаажуулалтын хуудастай байдаг. Үнэнчлэл нь баталгаажуулах хяналт, тойргийн идентификатор, олон нийтийн түлшний схэмийн хаш, баталгаажуулж байгаа ач холбогдолны хаш болон ил тод олон нийтийг хашлах тохиолдлууд нь батламжийн баталгаажуулсан метабараа болон кодлогдсон хүлээн зөвшөөрөл-хувьцааны хаштай нийцдэг эсэхийг шалгаж байна.
Ирэх төлөвтэй олон нийтийн тохиолдол нь нэг элементийн дөрвөн багана юм. (j) багана нь (h_{8j}\ldots h_{8j+7}) байттай, дараа нь 24 нөлөөний байттой:
Мэдээлэл баримтын төслийн зураг
Идентификатор тогтоол нь opaque_hash генирийн хяналтын хэсгийг хэрэглэгчэд зориулсан үл ил тод дансны идентификатоор ашигладаггүй. Энэ нь RAM-LFE гажуулалтын хэшийг идентификаторийн онцгой доменүүдээр дэлгэж өгдөг:
IdentifierResolutionReceipt нь өндөр түвшний хэрэглээний ачаалалтай:
Бүртгэгдсэн тодруулгын хүлээн зөвшөөрөгдлийн:
ClaimIdentifier хүлээн зөвшөөрөгдөх нь зөвхөн гарын үсэг эсвэл баталгаа хүчин төгөлдөр байх үед, нэгдсэн RAM-LFE гүйцэтгэх ачаалал нэвтрүүлсэн хөтөлбөрийн бодлоготой нийцсэн тохиолдолд, uaid болон account_id нь шаардлагыг хангасан хамааралтай зүйл юм.
Хөдөлмөрийн урсгал
RAM-LFE нь дараах хэлбэрээр гүйцэтгэнэ:
- Захиргааны байгууллага, үйл ажиллагаа эрхлэгч
RamLfeProgramPolicy. - Хувь нь бодлогыг идэвхжүүлнэ.
- Хэрэглэгч Torii нь төрийн бодлогын метабараа уншдаг.
- Хэрэглэгч шийдэлд яг нэг өгөгдлийн хэлбэрийг өргөн мэдүүлнэ: энгийн текст
input_hexэсвэл BFV шифрлэгдсэн өгөгдлийг хувилбарлах. - Хөдөлмөрийн цаг нь нууцлагдсан хөтөлбөрийг үнэлдэг бөгөөд
output_hex,output_hash,opaque_hash,receipt_hashболонRamLfeExecutionReceipt-ийг буцааж өгдөг. - Хэрэглэгч эсвэл хяналтын төгсгөл нь хүлээн зөвшөөрлийг хэвлэгдсэн бодлогын дагуу баталгаажуулж, эргүүлэн ирсэн
output_hexнь хүлээн зөвшөөрлийнoutput_hashхэшигтэй холбоотой эсэхийг шалгаж байна. ClaimIdentifierгэх мэт өндөр түвшний заавар нь түүхий эдийг шилжүүлэхийн оронд баталгаажуулсан хүлээн зөвшөөрөгдлийг багтааж болно.
Хууль зүйн тодорхойлогч
RAM-LFE нь тодорхойлох бодлого юм. Тэд нэгдсэн хөтөлбөрийн бодлогын дээр бизнесийн нэр орон зай, нормализацийн дүрмийг нэмдэг:
RegisterRamLfeProgramPolicy(
program_id = "phone_team",
owner = "<POLICY_OWNER>",
backend = "bfv-programmed-sha3-256-v1",
verification_mode = "signed",
commitment = "<HIDDEN_PROGRAM_POLICY_COMMITMENT>",
resolver_public_key = "<RESOLVER_PUBLIC_KEY>"
)
ActivateRamLfeProgramPolicy(program_id = "phone_team")
RegisterIdentifierPolicy(
id = "phone#team",
owner = "<POLICY_OWNER>",
normalization = "PhoneE164",
program_id = "phone_team",
note = "Private phone registration for team dataspace"
)
ActivateIdentifierPolicy(policy_id = "phone#team")Энэ нь RAM-LFE хүлээн зөвшөөрлийг ашиглан:
policy_id- нууцлуулсан функцын үр дүнд үүссэн ил тод тодорхойлогч
- тодорхойлолт
receipt_hash - Санхүүжилтийн UAID
- Каноникийн
account_id - нийтлэг RAM-LFE гүйцэтгэх хэрэглээний ачаа
Хэрэглэгчдэд чиглэсэн борлуулалтын хувьд дансны нууц нэрсийг хувийн тодруулгуудаас тусгаарлан байлгаарай. Алиасеуд нь олон нийтийн нэрүүд юм. Телефон дугаар, элс цахим хаяг болон ижил төстэй үнэ цэнэ нь тодорхойлогчийн бодлогоор дамжуулагдах ёстой . Төгсгөл.
Torii Замын зам
Хэрэглээний чиглэлийн гэр бүл идэвхтэй байх үед Torii нь RAM-LFE болон тодорхойлогчийн туслах хэсгийг илрүүлнэ:
| Замын | Зорилго |
|---|---|
GET /v1/ram-lfe/program-policies | RAM-LFE хөтөлбөрийн бодлого болон олон нийтийн хэрэгжилтийн метадэтгүүдийн идэвхтэй, идэвхгүй жагсаалт. |
POST /v1/ram-lfe/programs/{program_id}/execute | input_hex эсвэл encrypted_input-ээс нэг хөтөлбөрийг гүйцэтгэж, гашийг нэмж иргэний төлбөргүй хүлээн авна. |
POST /v1/ram-lfe/receipts/verify | RamLfeExecutionReceipt нь хэвлэгдсэн бодлогын дагуу шалгаж, output_hex-ийг output_hash-д харьцуулаарай. |
GET /v1/identifier-policies | Тодруул хувилбар тогтолцоо, нормализацийн хэв маяг, шийдвэрлэх түлхүүр болон шифрлэгдсэн өгөгдлийн метабараа. |
POST /v1/accounts/{account_id}/identifiers/claim-receipt | Хэрэглэгч ClaimIdentifier -д шилжүүлэхийн тулд хүлээн зөвшөөрөл гаргах. |
POST /v1/identifiers/resolve | Ажилтай шаардлагыг хангасан тохиолдолд хамааралтай бүртгэлд шилжүүлсэн тодорхойлолтын нэвтрүүлгийг шийдвэрлэх. |
GET /v1/identifiers/receipts/{receipt_hash} | Аудитын болон дэмжлэгийн хэрэгслийн хувьд хүлээн зөвшөөрөгдлийн хэшээр хадгалан үлдсэн тодорхойлогчийн шаардлагыг хайх. |
Энэ чиглэлийн эсрэг бүтээн байгуулалт хийхээс өмнө үргэлж зорилтот түйүлгийн /openapi эсвэл /openapi.json баримтыг шалгаж үзээрэй.
Хөгжилтийн цаг
Torii Энэ нь үйл ажиллагааны үеэр RAM-LFE цахилгаан хэрэгслийн цаг хугацаа нь torii.ram_lfe.programs[*], түлхүүрээр program_id. Нөхөнтөгдсөн хөтөлбөр бүр зангилааны бодлогын үүрэг гүйцэтгэгчдэд нийцэж, үнэлгээ хийхэд шаардлагатай ажил хугацааны материалыг хангах ёстой. Идентификатор замаар энэ ижил гүйлгээний хугацааг дахин ашигладаг; тэдэнд тусгай identifikator-resolver-ийн конфигурацийн давхаргын шаардлагагүй байдаг.
Аливаа бодлогын зах зээлийн бүртгэл нь өөрөө хангалтгүй. Зорилгоны түймэг нь чиглэлийн гэр бүлийг илрүүлэн, хэрэгжүүлэхээр төлөвлөж буй хөтөлбөрүүдийн үйл ажиллагааны цаг хугацаатай холбоотой материалтай байх ёстой.
Үйл ажиллагааны хамгаалалтын рельс
- Аливаа бодлогыг идэвхгүй бүртгүүлж, олон нийтийн метабараа баталгаажуулж, дараа нь идэвхжүүлээрэй.
- Хэтгэлэгчийн нууц, шийдвэрлэгчний гарын үсэг зурах түлхүүр болон BFV нууц материалыг баримт бичиг, тэмдэглэл, гүйлгээ, үйлчлүүлэгчдийн багцын дотор хадгалах.
- Хяналт тавих бүртгэл, гүйлгээний метадэтгэг, үйл явц эсвэл дэлхийн улс орнуудын талбайд түүхий эд тодруулбаарай.
- SDK нь баталгаажуулагчаа илрүүлэхэд илүү өндөр түвшний заавар өгөхөөс өмнө үйлчлүүлэгч тал дээр хүлээн зөвшөөрөгдлийг шалгаарай.
- Үргэлжсэн түлхүүгийн үнэмлэх мөнхийн хэвээр үлдэхгүй байх хугацааны хугацаа дууссан талбайг ашиглах.
- Шинэ хөтөлбөр эсвэл тодруулгын бодлогыг бүртгүүлэх, үйлчлүүлэгчдийг шилжих, шинэ түлхүүжилт орж ирэхэд хуучны бодлогыг идэвхжүүлэхгүй болгох замаар эргэлтийг хийх.