toy-ore 0.6.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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