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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/toy_ore/scheme.rb +30 -2
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 81f6a8809de85037a1fa3cbe0b9cc87f1294fd16e20ce5d4013bf129cbf02269
4
- data.tar.gz: 8d7c2e1dd6dd66aea8506675c99e84de98cc8d48e363c753afd9703f36499a27
3
+ metadata.gz: 1c2af6f79852bb2571a88f8f9ec2d4980d97bea229ef91e5ac8e2c71a43f56b3
4
+ data.tar.gz: f52f0998e53d01b8e6223524d670c87fa8683e31e868c5c6a5043a1cd41fdc55
5
5
  SHA512:
6
- metadata.gz: 185e32105b0624161dbe1fff23cd5a58872595d3a0db3a630f387dd164a2f3deec2e9f080059c333bf931b14f387c1db203ca60a09fae75178011585b5abd567
7
- data.tar.gz: b26ca8b171b0d4cac8910570b2dc853250c3897dfa426930c0a35f561dc5d6af20d78f0187e3c7c0f646c207740565b6aa1354b66c1879a7026673e1375331ed
6
+ metadata.gz: 676811d11fc64e00b016d3a4e2261082536339ffc226b2e9cb5e00917837ce2906418756dcba87fead8c700a4fb8442ece0fac477f4bb43146d0c819e3542c71
7
+ data.tar.gz: 388752c4538944538dc467b5941fb644c3934e5674bf821fea1fd2658b5c5bcd2a4316180d82d308f2f5d97e68db90f5c0bc19005fe2b8ab4dd7cb5322d8b435
@@ -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.6.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-02-13 00:00:00.000000000 Z
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.1.6
107
+ rubygems_version: 3.4.10
108
108
  signing_key:
109
109
  specification_version: 4
110
110
  summary: toy-ore