toy-ore 0.6.0 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/toy_ore/scheme.rb +30 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c2af6f79852bb2571a88f8f9ec2d4980d97bea229ef91e5ac8e2c71a43f56b3
|
4
|
+
data.tar.gz: f52f0998e53d01b8e6223524d670c87fa8683e31e868c5c6a5043a1cd41fdc55
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 676811d11fc64e00b016d3a4e2261082536339ffc226b2e9cb5e00917837ce2906418756dcba87fead8c700a4fb8442ece0fac477f4bb43146d0c819e3542c71
|
7
|
+
data.tar.gz: 388752c4538944538dc467b5941fb644c3934e5674bf821fea1fd2658b5c5bcd2a4316180d82d308f2f5d97e68db90f5c0bc19005fe2b8ab4dd7cb5322d8b435
|
data/lib/toy_ore/scheme.rb
CHANGED
@@ -115,9 +115,9 @@ module ToyOre
|
|
115
115
|
def initialize(domain_size = 0..255)
|
116
116
|
@domain_size = domain_size
|
117
117
|
|
118
|
-
# PRF key
|
118
|
+
# PRF key - hash key
|
119
119
|
@prf = (domain_size).to_a.shuffle()
|
120
|
-
# PRP key
|
120
|
+
# PRP key - shuffle key
|
121
121
|
@prp = (domain_size).to_a.shuffle()
|
122
122
|
end
|
123
123
|
|
@@ -173,8 +173,36 @@ module ToyOre
|
|
173
173
|
# 2. Stores an array of all encrypted comparison results.
|
174
174
|
#
|
175
175
|
#
|
176
|
+
#
|
176
177
|
OreCiphertext.new(@prp[plaintext], @prf[@prp[plaintext]], iv, encryptions)
|
177
178
|
end
|
178
179
|
end
|
179
180
|
end
|
180
181
|
end
|
182
|
+
|
183
|
+
# Examples
|
184
|
+
|
185
|
+
# Initialize our tiny ORE Scheme
|
186
|
+
# ore_client = ToyOre::Scheme::OreScheme.new(0..3)
|
187
|
+
|
188
|
+
# Create ore ciphertext's for all values
|
189
|
+
# ct_a = ore_client.encrypt(0)
|
190
|
+
# ct_b = ore_client.encrypt(1)
|
191
|
+
# ct_c = ore_client.encrypt(2)
|
192
|
+
# ct_d = ore_client.encrypt(3)
|
193
|
+
|
194
|
+
# Store ct's in objects
|
195
|
+
# a = { letter: "a", ore: ct_a }
|
196
|
+
# b = { letter: "b", ore: ct_b }
|
197
|
+
# c = { letter: "c", ore: ct_c }
|
198
|
+
# d = { letter: "d", ore: ct_d }
|
199
|
+
|
200
|
+
# Compare ct's
|
201
|
+
# a[:ore].left.<=>(d[:ore].right)
|
202
|
+
# d[:ore].left.<=>(b[:ore].right)
|
203
|
+
|
204
|
+
# Create an unordered array
|
205
|
+
# unordered_array = [d, c, a, b]
|
206
|
+
|
207
|
+
# Order array using only ore ct's
|
208
|
+
# ordered_array = unordered_array.sort { |x, y| x[:ore].left.<=>(y[:ore].right) }.map { |a| a[:letter] }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: toy-ore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fiona McCawley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -104,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
104
|
- !ruby/object:Gem::Version
|
105
105
|
version: '0'
|
106
106
|
requirements: []
|
107
|
-
rubygems_version: 3.
|
107
|
+
rubygems_version: 3.4.10
|
108
108
|
signing_key:
|
109
109
|
specification_version: 4
|
110
110
|
summary: toy-ore
|