示例#1
0
 def __init__(self, value, start, lengths, entries_per_block):
     oram.Block.__init__(self, value, lengths)
     length = sum(self.lengths)
     used_bits = entries_per_block * length
     self.value_bits = self.value.bit_decompose(used_bits)
     start_length = util.log2(entries_per_block)
     self.start_bits = util.bit_decompose(start, start_length)
     self.start_demux = oram.demux_list(self.start_bits)
     self.entries = [sbits.bit_compose(self.value_bits[i*length:][:length]) \
                     for i in range(entries_per_block)]
     self.mul_entries = list(map(operator.mul, self.start_demux, self.entries))
     self.bits = sum(self.mul_entries).bit_decompose()
     self.mul_value = sbits.compose(self.mul_entries, sum(self.lengths))
     self.anti_value = self.mul_value + self.value
示例#2
0
文件: types.py 项目: lance6716/SPDZ-2
 def __init__(self, value, start, lengths, entries_per_block):
     oram.Block.__init__(self, value, lengths)
     length = sum(self.lengths)
     used_bits = entries_per_block * length
     self.value_bits = self.value.bit_decompose(used_bits)
     start_length = util.log2(entries_per_block)
     self.start_bits = util.bit_decompose(start, start_length)
     self.start_demux = oram.demux_list(self.start_bits)
     self.entries = [sbits.bit_compose(self.value_bits[i*length:][:length]) \
                     for i in range(entries_per_block)]
     self.mul_entries = map(operator.mul, self.start_demux, self.entries)
     self.bits = sum(self.mul_entries).bit_decompose()
     self.mul_value = sbits.compose(self.mul_entries, sum(self.lengths))
     self.anti_value = self.mul_value + self.value