|
template<domain D :shared3p > |
D uint8 | oramPerformRead (D uint8[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm) |
|
template<domain D :shared3p > |
D uint16 | oramPerformRead (D uint16[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm) |
|
template<domain D :shared3p > |
D uint32 | oramPerformRead (D uint32[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm) |
|
template<domain D :shared3p > |
D uint64 | oramPerformRead (D uint64[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm) |
|
template<domain D :shared3p > |
D int8 | oramPerformRead (D int8[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm) |
|
template<domain D :shared3p > |
D int16 | oramPerformRead (D int16[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm) |
|
template<domain D :shared3p > |
D int32 | oramPerformRead (D int32[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm) |
|
template<domain D :shared3p > |
D int64 | oramPerformRead (D int64[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm) |
|
Obliviously reads values from source vector indicated by the indices vector.
- Note
- D - shared3p protection domain
-
Supported types - uint8 / uint16 / uint32 / uint64 / int8 / int16 / int32 / int64
- Parameters
-
src | - vector to read from |
shuffleSeed | - random seed (32 bytes), has to be the same as used for oramPrepareRead |
sortperm | - sorting permutation, output of oramPrepareRead |
- Returns
- Returns a new vector
result
, where result[i] = src[indices[i]]
- Note
- Given that size(src) = m and size(indices) = n then oramPrepareRead works in Ο((m+n)log(m+n)) and oramPerformRead in Ο(m+n) time.
- Leakage
- None
◆ oramPerformRead() [1/8]
D int16 oramPerformRead |
( |
D int16[[1]] |
src, |
|
|
D uint8[[1]] |
shuffleSeed, |
|
|
uint[[1]] |
sortperm |
|
) |
| |
◆ oramPerformRead() [2/8]
D int32 oramPerformRead |
( |
D int32[[1]] |
src, |
|
|
D uint8[[1]] |
shuffleSeed, |
|
|
uint[[1]] |
sortperm |
|
) |
| |
◆ oramPerformRead() [3/8]
D int64 oramPerformRead |
( |
D int64[[1]] |
src, |
|
|
D uint8[[1]] |
shuffleSeed, |
|
|
uint[[1]] |
sortperm |
|
) |
| |
◆ oramPerformRead() [4/8]
D int8 oramPerformRead |
( |
D int8[[1]] |
src, |
|
|
D uint8[[1]] |
shuffleSeed, |
|
|
uint[[1]] |
sortperm |
|
) |
| |
◆ oramPerformRead() [5/8]
D uint16 oramPerformRead |
( |
D uint16[[1]] |
src, |
|
|
D uint8[[1]] |
shuffleSeed, |
|
|
uint[[1]] |
sortperm |
|
) |
| |
◆ oramPerformRead() [6/8]
D uint32 oramPerformRead |
( |
D uint32[[1]] |
src, |
|
|
D uint8[[1]] |
shuffleSeed, |
|
|
uint[[1]] |
sortperm |
|
) |
| |
◆ oramPerformRead() [7/8]
D uint64 oramPerformRead |
( |
D uint64[[1]] |
src, |
|
|
D uint8[[1]] |
shuffleSeed, |
|
|
uint[[1]] |
sortperm |
|
) |
| |
◆ oramPerformRead() [8/8]
D uint8 oramPerformRead |
( |
D uint8[[1]] |
src, |
|
|
D uint8[[1]] |
shuffleSeed, |
|
|
uint[[1]] |
sortperm |
|
) |
| |