Currently we're using iris dimensions of 160x80, but the production dimensions are slightly different. So this PR changes those sizes to match the production system.
Design Changes
As part of this change, we need to fix some design issues:
[x] Split iris bit configurations and encoding configurations
[x] Avoid confusion between the number of rows in a full iris code, and the number of rows per encoded block
So this PR creates two different kinds of configs:
FullBits, MediumBits, TinyTest - the bit sizes and dimensions of the full iris codes and plaintexts
FullRes, MediumRes, TinyTest - the block sizes and polynomial sizes for encoding (and encryption)
These design changes are needed for ticket #89.
Cleanups
It also improves performance and ease of use:
[x] Make polynomial sizes tight, and automatic, by calculating them from the iris size
[x] Rename config types to be consistent with each other
And fixes some bugs:
[x] Calculate polynomial sizes from the encoded size plus padding
[x] Add missing impl EncodedConf for MiddleRes
[x] Add missing tests and benchmarks for Test*/Middle* (or Middle*/Full* if TinyTest doesn't work)
[x] Remove a hard coded TestRes in some tests
[x] Add missing types and inputs/outputs to test failure logs
[x] Cleanup redundant tests and benchmarks
[x] Skip a test case that can fail at random with tiny test iris codes
Dimension Changes
Currently we're using iris dimensions of 160x80, but the production dimensions are slightly different. So this PR changes those sizes to match the production system.
Design Changes
As part of this change, we need to fix some design issues:
So this PR creates two different kinds of configs:
FullBits
,MediumBits
,TinyTest
- the bit sizes and dimensions of the full iris codes and plaintextsFullRes
,MediumRes
,TinyTest
- the block sizes and polynomial sizes for encoding (and encryption)These design changes are needed for ticket #89.
Cleanups
It also improves performance and ease of use:
And fixes some bugs:
impl EncodedConf for MiddleRes
Test*
/Middle*
(orMiddle*
/Full*
ifTinyTest
doesn't work)TestRes
in some testsClose #102 Part of #89, #100