-
Notifications
You must be signed in to change notification settings - Fork 6
FHE in action
Following is a sample run of the fhe executable from commit ea9feb264e1691157ff57344e985622aecaa734e.
fhe takes one optional argument: the security parameter λ from which all the bit widths within the encryption scheme are derived. The bit widths are set as certain powers of the security parameter. The choice of the bit width ratios is to a certain degree arbitrary, but ultimately is driven by the need for certain elements of the encryption scheme to be within certain limits compared to other elements.
rdancer@boston:~/code/fhe/libfhe$ ./fhe 8
We have chosen the security parameter λ to be 8 bits. The private key will be λ² = 64 bits wide, and each encrypted bit will be λ⁵ = 32768 bits wide
Private key: 0xdf609dd49b49b2bc
Encrypt TRUE
Encrypted bit (1): 0xdb908fca2c6d325f47538fb94b41a51689a3d83dbc6e37f368ed37f80853823e06a13 02ae3d359817154fcd0a48a61d583d5fee0b9679fa5f8969915f900968715feb8d31dae cf8954f0ccf4225ea347e9456414404abb8f495f8bc6994dc63c00b7e4db8294441c3f4 a47701bc27b919df084802610da723c26a4abf9ef22d626b3595d2ab2a209c31bb01aaa 97568ffdf17b87ecc5bf560faddbbf698ca0b463744296116f75bfa6bc86d82d3e122a1 a648d28a6ca7a27f6dae993799dd6370481b06c5e925d6e02cee95c72e5552135375473 8433dd241306ede0b7da8d8d240a7573691f7e15f77be5f822d4d9cfbd030a48bc3e70d e330a144a79c62389715dba4c43d6b58f27ef1c5ada4f7ee1721c710a937f441df1c8f8 b5a0fcaf56ceec1fd4fc1d4296d73f0bea76b722cc98b4ce96ce266eeac72b7c8f3515c 5ac07e615a2271a91f3979819c581459cdc148a208a083d37493ae83919a177ae9869ee b2f6c0122eeeb81e60916f0b76857e372d37633d91e825f8829db8c5d387c60c76e9049 47872d6610e5a35a45a45f39802f62e69478e0ff553b501456b596ec2302fe74f463bff 0014f3e060093328ac7c84fc5324a304335521c40358df3e2a6ae1c7132f0dd1c3923f6 8a6698e2ea91213036848dcb75daabc2fc3ce0a43a73afe91db86f60bca78f3325476c7 caef59f32b40b7ec63389a2499ad5ec5d226b34a3e2b71ae31e3daf8fa05632d3ab14f0 8601c13b2f8df527addba730050f2be405bbf7a6ecce9172e77d8e3af2f36aec559ab2e a36159754a587b9d75fd48ee72726d9250753d3da6c5598abbc98c1c2a01025d3b1bddd e2c49329ed3cedd4e4375e39bcfe321b7444801f25779efc24b28275de3d321e3495861 3e3a7a5c2e18696439d8a5027425cfb77aa5092bab97498e864cdf39233e2c937392346 60b5437e6dfbde830621b4eac5b6aaf056e8f65ec29fc45281dd984a67e832b382d4ad1 bf300e00038a3f2746f7dfaaa94761328acbc671f6ab82fed4b8816e79bee07464c03e8 de1cab32b2fdf686e6ca312e4321fb9878003412b5225f6b43cea8bac00078056097631 85c9823130aa18930d8434050455dba9b437eae24e52754d3c9af8bbe56740c2476d47d cff131727a9389d1d6a7928dd09c719c8b68b1fd99bd75aa63e1772ab6052cb72b8b664 fa12171de9a3fbf71c70ee009c9b515bb5337dd7e3550fdd89ca884528f740d8112b63a 8ae402d107a141081d5f05dc69b951ce6dd632b24c7720b65db766f4674b5c9b6b24ca1 37941ee22e22e92d2584251f4178657ce0413f4436d643ca22e084f91df62e6f7375ccc f9157e25689e51d53d3a3311dc4a4f55553a18dfdaf887c9a9dc2f24ad8d2df9a221777 23ae7e555820aa0d35888573fb8fc0f81aeb85e48e37d340fb97a8abd8c8c339182c125 809633700bc0f65341e4153a5a352c784786d47fef6bc26f77dbceded85e4efd29f1097 f5b9aeb89f85921bbbdbffc3aa8b808d573cdcd79a62b86bdaac0f64f9561929db3ebc2 3f7c10ba2a3312b3e860f174479cc35c6d545eb218f0d187c19123f17e4de1e1bae46ad d72ebad2b2813ddaa9934eeb72a54dec8fa94108cd719feb1554de3f7ebb9f96bd2e108 60f82a6cc5d870cacbc55ffa6425e3ddc2b6f39868f8e11c16c285627b804c6233b41b1 6a21b11126bd18d7e79c1a8c65db7a6277e600d7f526e22d7b440c84e3459977902d8e5 5b93590e8fde78ee80ed92085a3393549fa40a5aefe8f11d9547767ed8f1c3630f78d84 ceae62417a0883f44bd918d749d52c6c20cbdb3d7db0e3843a99fb5a1c5292dda551bea 51d1cb13d22541ae1583cceaebfd25c50a9a8d3ce1513270b607b9d53042d745e994709 b8794c505edb957ee0cb24a164f28258a503415259a6c4a0864cb90e737378f49c6a7d7 d610068065a82e91c54788750b0dbaaae6df5927770d1c386be1aaf0e335ccba126ffd8 3f68782345bf1224d24df31801ddcab926b1d0cf649af72e465143277aa688e5fd42a33 cb7056053cee3ae2cff89eb3a54a521a84fda60a8b9c724cf9b41223db9bfd4ba58dd17 73ce6886a7684704b56c960bd2dd441ae2973d9d938a2488645db82494c12401006f311 31adbcf73b08a6bd7ba5f0026c0d206842f9615ebb2dd3409560777c4f3c5a5e32ab35f 5a482fbf492b4bb96546bdc1874e820280b8308818844a9d304e82ba99f9be463ad98c4 172096e6b30c8d294099580ab1129310e7cd88a619f68be1a8c4fad27ac9ff8af425746 479959363ec594402857149b7d44b2b88859fe17bb5ff47236ce6a34787c752cef990e4 385ab15660b7add661394baee7287076f653b3c75110be8224e4759c2b0e90e6e1db3d0 ddf1eb2af817983bd3052069313e6b1b2b3dc0663966543d704ff4f1ae224fe16f9b931 5e52266a2d66eb40826f18088844626b3b541339046f90e93bbccf8ee997b33cd4dec8a a2d776032e8fdaf65b02946871146c8b22f5b54a2af7b94a6e366ca9389cfd2201e913c dbc5d26a8f849449b5ca7dd6c930a030f3246a96b167aa3ee5c6b7c79530da8a1b814fd 5e6a5b5f7f8a2f81c1eabc0849c58904b88373e41646e1051a8d1254209d1278a29e887 ac8e81bb8a1d7a77db8813695b8450b49a6cbdf4420b5d555536006389afd81d37c4387 e670e487712a94859ce7a35c571df84c0bd63d3af194fc30b2fb63b250a507c555bb679 096cc07feffc4f4abbfc0255b681ea6c6f824ee6592e0bc917813a27c09b6ef580634ca 06bc38f198b1774a025228f2b8be5436dfbfbd8227bee477983d407ed650067a213e2a0 c29175ec30211b036efd0585380fac9caddc5a571bf2cf41f8a9d427ed62db67d16b7c4 5d29e477236a5cb2e7595a1556b10b35c6ddfc0b6bb0c526a45018aeed896eed3f04a3d 56d1dafeed361cc5d775f59911e282d04f64c85acc2367b48c0553cc57e62665359902d ae4e12f45698c90fd9f547ee2d56ad4fb6e801eda49dffc151de258732383ee4c9ca44c 13a8dabe721007740e09f7617ec3606b5cfd0f19f1bef7c5980c733a8fee569675e3239 e1ac11594a8f92fcfb4b2cd3e6e67a9b9cd4c731b68ce73dfc1af0f51d2763fcf3b5b67 bac52efb95e185880fedde121c658b47e7306d6893d51d1921da1b1c01d32ba5e3f961b e6c8c263c181d7487beeb8087fcee9e219d58f2dc7b45e411ba4968a023e9a89e34e823 ea5b08af845bf9af2de988a83ece2b1d7106a669ed9b04067129b8c27b9eab94d1cd71c 38cbf315644659b947d640272f930742ede11af4762bd19b8ef7a155779dfbeec1a09e6 42243d82f5bab10b8c303ddb34b16bb356ac1597e9dfffefefdf782f1aa6f64b8a0eaab 414be5d464f022bf3c1a84d2572c738abba8f7fabcdda7076dd39ac6913be5a1808bd0f 0d5ba2db1d9b422f210781820ae4a07c567c6f79fc909e1347a1bdfc7baf0b82697dabc 7de455caf8bc704919fef068d0c9d49ca07190d28bd2f6418a8670b7f4a8160cb4b4548 f4d1ca99056e1d04c0373f8b5561ddd5aea388b6d4fb33a19f98c08c0bc14c13d530f92 f780735cb8fe86e10a4b84c0efd502d250087ea95f0dcf0480c7330cf7c61fae439741b d35f82439b327652cbd1e6e8fda837287af82f32549262d1191bcab59b9164bed78194a 21f153f7d6e0ce40642fd068cd85d276dffddde4c1000eb6cf001c5e57cd742437c86d5 eade2405938991cad239a70339a7393e730105051a6a67eb24cb5601fc9eeab08e7655c 006bf4ba02113847170cf2876e9d76320254b54ec28ff1cc13f93134c2f7c6ad83209f8 59537dccf40ba8f7895da1f063b5a834d3d8ea5cabe22e800037d436c099527e2559a52 b075b2ca8ff0a19a150827c66803743d0fba1bb043eb0f39cebc369128bf0590bde0de9 153b14ec355dedbc5796a9e6b431cf46e511cd42d9f681c6905b3f61e0b33eddc50fb89 ce1fd3838b2b8556022f80fc54f48aebef72515720d858250330d399f199405d93f52be c1e72e610aa05ba080d1501c9cbae9ea55fcd0e0ae59d2a74dc5d6a72cdd3cb133b75df a47cc8b2ef7a36eb25dbb2d9da09ac5d18bba94f9a14dfc8a5cf20f9b09903a6ef6330d 37803c4f6432309cc5211ec273e69c1fbcf8840f7fae09b837de75a5d898acdb8ea1ea0 64a32c0c61493869dba4286368c75255851cee879a5b6156112fcc5f3a2fecf3da0de4f e3ab0a05aa2c4e516d2365e2c3bc5172079738cdab0d099a92f6ceaf4c947e4efc7616c 0c62aea0dc50cba665e8968c6d63dc2f225c54ef821e2c2324008d6190b01a27cc22105 ec2d101f6711bfe8522abaab7f903586f009e39cdf555ec98f1bb8a93de45619cb9e08c b0a8afaea153570aed875480834c5dbaaab2b003aaac81308d2189cce0df5e8d20c015d 0d3ed5b38c7d91176e39ce6664b535cb11d9ad664c721e2e069d23d5a504ebd02ec2bd4 a31dc61bf4a3550da172c1b1be92dd14605a3232429f67762c4e9cffb3adf5631fa1f6f 14af1775f72263f0242a6e0f9e0ee9d855ed1084b88fb369045f6b4c75508c06b5c1973 4e6d3aacd525a4f69cd67325b2951b4459cd98c318a9f2f7675c5e835a71e80ee057a89 d13e88a2a22b8c32cd5dbfffd2a95bf5346894bf6274fb66c23f5a21ce25d0ee1c344de fa3acefdea7d534b673875998dbbe1d0e968b7e161f79e058926797a6a92973ca031f9f 43c19c1a4d7f93a9b8d110666c36d9a881c97f4f3e1cf725492537b86b6f99a908e9447 075df71b7afedbf6aed1ad7c16138bfed1f2fb16214135ed97614ea1f9a1705336f8bd4 7737a5fa2745e81cd82ab8ea13939fddb485d3db2e1150b00e819dd8a587f830f0a596b 9d7837aee1174162865cb3fe9cdcc3a2dcf92ff50acfd9a57c51e8e62f6d49d8466dc91 4a2886630ef4b91981ba20b7ffccbcc27187aff15ed7db8f57fc1683897e84b79ba261d e0ebae774380ab4efb9dd15e057852daf756c9f9f940c59639947ae6d45230f82c141db fac29c34df708ac9ce5ec6890cf8b56802770b8cf60bc65dd454a8971b42f89eb49cb49 6b9ed4b1fc1fe1f8c381593db997b43fcc6d485f21c5129f67113bfe94fba4c104ba4da 7380b8a6200f75fc9f3f7cba9cde62bb61d14aabdd3e6c4da60184ffefdb8597711550c 7dd1353088b96e45e36ce5604aea7bae6ed819c5c5328748131373072cf15c52548d815 06829c95042adc482c3e466177169dafda5a0b169539a5e68d5b1e4eb07e47fa9ebe891 5a158064c0da23b34e47568f7bb3cade0f91a415ebf75a6b92bd061a80ed78a353e470c 89a94912b9ab3f052b695caacf6e244ae4220e6b0f9abaeffcea1c7dcc975531a5c4e35 301b96064db1d1aa31fec626922678177d4881c62143347e97a0d6da19b5339f6161a15 f845a4d25daf4e13be55ba5ad6d054b995528a7ee509f0486f2cec42462f104c18448f3 d6dc7dd27dd5d3791bbce7f47e308bbc0b2288a7ebb6d92fa01387a434a29d5ea04e05b f66a9d64af0bdf2db688e2f91064c46d1dcfad4277c9753e89f28f90faab8bc99bf8c8f 2f010051806fc6b401e0d0c09c90e51eddf48c6f46129582c0593cae5e169bb94fea8d2 cbb9328584248fa5601bd2a2eac39033b20483c4020accf6e5d41cb99e3eb8e7f8ef2e0 2baa34212936ca1fe1f1d6cc69614b6b164aa1b35e21dc8c094df7f0c7d866095f8b64e a69241e34ef086a097feb3ecaea4ba903216b4ddc40e9
And decrypt it again — decryption of TRUE works
Decrypted bit (1): 1
Encrypt FALSE
Encrypted bit (0): 0x79847661aa13511850983babfd6109ade1249f236cc71cb98564a1b024494c21d09b3 01254508442386fa76e4c4e8ac0ae6364d4f9a93cbe919b354cc412bb8f7992bdbcee57 762defdd5d599f1d121c5899722f81fdd58bc4157d5cdc29146d621568de9890f950ba2 5e02ecc17c3d3d5012d48dcd28f24b9d8149ddeb0e7621250291bba29ee87d70d48b96a 281851e41274601c4fb771c5ee1ce4e60931528ee5b1e5b2c17926261d78bd4bbf53d11 0a4d15dd2ca3d2a9feabb47b7619658ba1fc4004a227115146df243bdb5f311d7074eee e2d6984208ab307833448dbe4498c5fe08c027c78b0ab7dd86d00a37991401a661f1275 402fb0789cdee57ef64e290ab44825891c26dc860ef40a4e112728d41b7fc67bfdc5282 98eaf5dfa4bd6223c65c42f59c11a772b73b76b10389f37a7f55afe40c6e6938d2a0721 0209922b53ee95b625e4ed0bc04c8abe22f0e3c8b03d0423aea6a3bd3ddad0ec38facf8 f4251e053cc2fa441d9c9e03f122a31b17363be0392fc94fe30867dc11e247b3281f4a1 1a5711df50088d78a8a6fa05eaff70068432609aeb3819cf73b188a94244c1efca3fc7a 1adfb7f2a92fde541cb0dbca26a99c7739f2fef265a789303e7247e81522f8d50afad08 5ba93a8e9f84662cadd3ab3ad9c232faa20ee7fd4f86916fc03eeebe13f01cf156a8ec9 8d980df47f7505818601f833c3d3549f7ac8a662548c9868dc4c5450a86414df0669a99 5d8f7ac35561ff45570d99e444c73819fcd131662a7cb989004230ef6048d9384dcc6b7 77e6c8801a8188339d2969ee89d2a4cc190d5f5cab75a01bc00621d630938bdc1df2953 82a7ee8fb49bf170ae3d2b8be1c5dd727c3f548710a1fbab80d530f31d3d704b1be1799 3e92cb5e5928c28b0dcfa05583a39b1eda011333ff188ddfb942708b13d701fa9256130 d52ebda7895e4cdc580334a3dc64d643ffa85e82438ff0f9d56805016e36eadb7b354dd 09874bfac28603a6e12db0bce1daa318aaa0b6c7a5bba419c3547c531cc1fd89a741f33 5f39e5d50eff4d03b3c0dbfdb25417a81bfb9f48b8a441ab566d96fe178f51b4e1d07d0 f683e4f779d04b5e8750b87d20fd3e02c2e5b8734cf916b31dc18d33590b8d2c12e0323 506e2183f5c07e7b5ac1e5a4d0dca17cb09c1e487332838875080d738981431323feb6e 60f0b1b14f1fff8c40093431c2853f9c1a2d16da5162c9d47859fc95e71b2e90cfa90a0 6f93423c10b00ae25c6449b23f92e0fe65974cd64cdf87676812ca083588001fdf1e31b ea98edef67257f8af9d92627df4c3df6f42610714742fa28bff966e27aba59042588548 914cacffdb466105ecaa90509524d2ded216d21f32dff894633fb25893a1a5a84ec46c5 5d450efc34fa4a7a23bcc4c6e15541706c8bcab46cc50c8290e69c63291ebeafe13f38a ea6434433a5f9e4a6a073b5d77e67b1cae637924a52bde206b174c278abac567e5a33a7 7d358b31b922cab5976c617ed201c7880054f80fdf5ad19af0a4e4544e549f943abd2f6 c9117b7f31523d8233f12491ce776c509d1172cfdfcebbd1724a0936d9df8ba0b15ab52 d6ed64ed27513995d0c6640297588fdefa4fcf63fe93f253523657344958771006c116a e744041dd59734ac56d61e9212b305e466f359fc0d089aba90559411f5f4780f5b23c7f a6f4a3592c7bbe2ea05b9d9c7c8faaadb23e25f800d5c5638e3da3fa4b0e2cf4bd758dc 1a546c0cdd66a92a23aa1cdab1222905965ac5868897f14a9bafdbaac3f8a6a3a97ac66 3c39bfbdcdb2c8c865671dfd85e980c002a6f24ad65478bbbac7efe82559bc7fb7fb87f 7b5e573878abda15759c1c4d55bf76fdaee42888256f698c6ee9072e03da2204a3b1b70 e65852433ee5d6d4338606fa1a63da9fcf86c21dbe896b92e16b03d1cef161a38816b37 419212966d53f61d6f636c5cd9a8353a203d0e4aa88cb2bff6dec0cb30118c32a8e3669 042192aafe24749e298eccd4702518859e16076bc2f466f1927a0a00c20dc14e8cc369e 8d2cd8e770ff854a375be7b0501140d036c2f5acdc2d8422d00d77ddc142fa390e1624e be3f97ed9b39474b41f9d4a0cda4db4a582e22b1fbe455d27b1a6de52620fe5aef7997d 9bce741dd55b2fac3ad4b061926abe2fafa5da56e762ab362fd00bfe5dddb0a3e6bd5db 852b259ca58acdac293fae4484c80b9c0f6f48d0025a0a8ae4003a6dc0717ad43731b04 6501705f32e8d1c3541cc92539edec80e1d849f8d79479b6177c24aeec37aad2e454846 847c3f201f689641212af1a20457d14c837b502ba608b1f8a360245ec9e48f81c3a82eb 8add5a0190d4b9e1ef6bbbd7f766af50e6b85cb34e3532b23bf83e859b1ed1a72a33fac ffcd2e6882e0faa9dfee9a324ade700fb2db1d80203a20d204f5fde3a9f87bb7aebb95e 4d88308ade0de99525997f101fc21e3397ae15efbfd299656aea023a517557a52cf8e6f fd81e76ba0d4d671c38479d188417d3acaf62a6561ef45e5f0ebf43c64c6bc9647ed629 6773193cc75a9539cd859f89e8575d15a28df6b788d853b40f0e974ee2635154ce7273e f1895ccb274476b520d832d3b69351177719b60c29b36925014dfc803e3e91a76f0cbf0 2a748adbaed474cc50cc9ee8b4a51be01a2e78ee95d31b9bf550b11f9f5243d6db97671 d4c703b5f14caab1c0e7b095911f12d863188a4606f5ad3b497852c806485c36bc87d62 0b8ff51d980f7424e64637c068fd4c29a922fcdaa60f7b7510595d135f5f9668e13ddcd d448a317060364262233ab5b04cd17c987045b73313c96bb270f5e79b8c973a4a8e8b92 f9b8057682ed3e00dd8544d74606a4c54faa363ec73b6e92f269b92622176c4c4fddef2 9f3ac58a7a8a8b195f72e7149b5f4f45e853a295f695b9bb7339698838dbaf600926a04 624962832a38e7be531eed3fd5df6dc7a7b35a7b2e7b56898d661ff3dc8ba90adc2c422 32d1fe4c8759f8a100f62cab0e38b39cd8f1dfa87f5c7f461fa5a1225fb6f790de7b9f2 8608b6a77326748ad5ca5331b1baaa2c7220aaefd6940960a0272ff246b8403bb74e691 f1f240965d82c7ad523be35c362f68adb7efaf7f13b4cb9647cba2f377678f9a2830987 0428af652d6587342c00fb851651957443287231acbfca57cdc4374a8ada002dc71212c d22db91e1782aab9ac49ef49af9d0826c735864d1970debe5f2af90b6432c4a753e59fd 51ac8286be91142d3ec8f3cc5840f810c69e53e8d4f816a29d8d65dc1be05db64122794 6810b1732dcfd97fa354d9b7f5bb8f1be627292e05601266e93718a5cdf120e0217c609 6d38250607b2ac8b4f7be80eed006ac7b30d3f0326fc20c2e46e9d00b3ac0d6d1e8f5b6 e461d572b9b54e06423328ca262a1d5d6c1c64a98a96ed976c71fa06afc767c83fffd88 1ea24dd29d6772fe6bfeee0907aa969e60b5d59823afb95a172eb950c2d00da444175db 3ad7f32dee48b51456ebd0f7a04fb530a3c1b873258a924ae161f9428bb4d2e51d901e6 aa654c4cff9b04c187d19f38af395e478d4fbdec3041f5a8bec539e10ace30d67fc8f4e e49d60bd3f4d2b197c1445d3f8ba7b8f6df1272baf848e4e4d460a34d801406ccb97681 95c0ca2bc2cac47368e1ffb76bdeb1cfed5b2a35040718ba6322844e246d61ff015d4a1 9239c2d7a1e6b97b3b763934610a4a3c41c154da87480b5168b0de9e4f348c4e41fe65d b86ee3861d47a72a670db136b3a7231c8d4cf52cc11aff52dfd5017914edf2d6536a17d bd3ba4bd7a5c8fa669815e8e98ac136ea29d5eb8ca2e256ceb5f86136a6a6a15c934f53 b3c7e03f5e7d53b36d3722469bdafb2bb4f3cdaf5a301aba9c62db6d900df6103b6610a 5080376b7b2e5f5d33230b677b4afe4dc970885474962e48d3b0af5f6ed702be93e9856 bd9f93ed16a12f6858fdce65ce2f28f7793e37af62505627f3f50bb0096330481b6fb64 43a29ee55f1fe1c9791a4e6d3d511a4af0fa8e74f2e58ad3f6d00f25856bcd706bb2231 26e7f9cf28aef801f654e94e80b23396d338b9c550de593f68e5f77d6c45a7de3bff646 37a7d1418158cbb582a138b6991b33e417144197bfad9c64547186cb9aa52d22d566d93 6332094e338129b99136a2926dde1d83794df3c02ff668c8791c5a9e615dae6b3edee7a 7a4b71f9a15863ecd2a1e85c69be97c7768f84779da577f7f4b8b20b7746ac914da27f8 3fc39f7ad4327b753695367ab67a3bd51e095b026245cf23d76c3e93231037a98417d10 4d1339abeb1a650d6f1e22c799c08fe94e8ec586e819c19464d754a0207fab042f8c153 c33d173f775c764786dd27264862da052af556672db78d92e7552fcaac5882cddff02e2 9b2c3e5f1b617b7c111ce34ac921ecae91c119d39232ccca9d80865262a1ed199f00658 c8f11c0892e65fb344c20f40f1c90d29fc9d2d3cb86deb2da495f070da18705fc2362a8 b5c4758fc3dd953b74df80087c7eab711d749fd48fbeca0e202c799d2313d9b6ae1340f a0d3111d6e16a1cd42ebb3b6faf2d8bc716f0c022d4c9d31c969037e07b1b2f641a2654 21842befe234f0920c2c9b217816880469eea39589c1b71b1f09d9406120b552cee1062 cb7b656c39e025ef14c2797be61cd7156d290ce0efd0e1b7256dd63d2b6e31ff62db9ae 1e409e4bed0e8e1a6930b20f75f2b6b82a2191b4ca7ee9629db1537ab9bdfd1535faa56 f69c4090ac67849b0b04da108ef12a544b2f6c9a2c02b84be1b17ddf85b3a0a2c7e863b 01f1c7ab99e6e0cd5923980688ef71ce4d61a9ff52f50f98b44975f1988a7f8a9cf5be0 17993717fcd6488c30299525563a59ee37f4c2ff549c04bc84507e96952972ecbd7d3d9 37dbeb570f6d49b95ef3fed940eb59d66a9c80f68cc564616d1acf9fde48c42dd7134f6 88a354c9cce300bf1c210cb533a3d134ff1e974ddc6891c068f699fd863c3fa5c777d2f 635db059287eb06f102fa147026a896f6ec5d8bbf8f4d16c5c2bf72534ac4f9132b1e1f 1ae60b45c453072c9794370a80d99d957dddf8aaab166806b48535459f6010da958fdff ec662f1083c8bddd8f7bc7608415af4e2764e3e4b83d31d37491e43a7c5cc1c3fcd518f 484c58d670009b286007c69ec8bd04d110c6a356e3f4e6e84c9ab88cc4df8df27c35f97 bff8bb657eb1e56c220769b85c1860366a6ade802a42dc1d6ffeffcfb95483eef23c1ed eb8e68dc942fd8e14ec8d3c2555203e8ba535541ad5f4acd695d2aca812fa063a1d51a2 3d37579a25054f426d9fa01b90b70544a9575ad1fedd47a8de5cacb54f0fb56ff4763b6 ff446717689528ce55442475d89597021be2568e11665e6cc5cf7ece10a168f6a05e5bf 544460c31d101fcf5c4f8208e84943987c9fb9e94da8f1bb89399a32d796d8ebefd23c1 99a8ffc6138046a9004a7552aad6b7d5947b76be32b895f6b3572e861052d03d170786f d6ca5cf4250137f341a84679651a846798c98db835dc2868f30b0f6cc96677c05a666d6 bec236a824d48188ee5570c0f0baaaace99c177538ddba7a171318992d314b90f05ee5b 33ca92cf0468715a5f3541c2ca55b4bdf36ba8ca24d1c54d93e2d129786328d2e240f77 43305a9b8d9ac2c798c2abb6571f05450e4879216fabf8cdfc7f90fa918ff5da2be688c 31a0d14575e0eda8650a1c71510b6ce0cf6d4d0f4bfffb4632d9bb291294ca04d6a7385 a82a60ed9cc95881636c047e7a232d68d78741e5de44c
And decrypt it again — decryption of FALSE works
Decrypted bit (0): 0
In the following tests, the bits are first encrypted, then the logical operation is performed on the encrypted bits, then the result of that operation is decrypted. The result will be same as if the logical operation would be performed on the original bits.
Decrypt(XOR, Encrypt(bit2)))
0 ⊕ 0 = 0 0 ⊕ 1 = 1 1 ⊕ 0 = 1 1 ⊕ 1 = 0
Decrypt(AND, Encrypt(bit2)))
0 × 0 = 0 0 × 1 = 0 1 × 0 = 0 1 × 1 = 1