Skip to content

heon0120/randomized-cryptography

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

randomized-cryptography

Encrypt each letter of the entered plaintext with RSA8192 key.

View English Documents

프로그램 개요

본 프로그램은 일반적인 RSA암호화를 하는것이 아닌, 100쌍의 RSA키를 이용하여

사용자가 입력한 문자열에서 각각의 글자를 추출한후, 한글자당 하나의 RSA키를 부여하고 암호화합니다.

프로그램 구성

  • rsa8192genarator.py: 100쌍의 RSA8192키를 pub1.pem , priv1.pem 같은 형식으로 생성합니다.

  • en/Encryption.py: 입력된 문자를 랜덤한 키번호를 추출하여 각각의 문자를 각기 다른 키로 암호화한 결과를 파일로 저장합니다.

  • de/Decryption.py: Encryption.py에서 암호화된 문자열파일(.encrypted파일)을 복호화합니다.

선행 조건

아래 사항들이 설치가 되어있어야합니다.

python

설치 방법

  1. 이 저장소를 GitHub에 복제합니다.

  2. requirements.txt에 있는 라이브러리를 설치합니다.:

    pip install -r requirements.txt
    

사용 방법

1. RSA8192키 생성

  1. rsa8192genarator.py를 실행시킵니다.

  2. 개인키를 저장할 디렉토리를 de/key 로 입력합니다.

  3. 공개키를 저장할 디렉토리를 en/key 로 입력합니다.


2. 암호화

  1. en 디렉토리 내 Encryption.py 를 실행합니다.

  2. 암호화할 평문을 입력합니다.

  3. 시간.encrypted 형식의 파일이 encryptedfile 에 생성됩니다.

  4. 복사하거나 전달합니다.

Warning

암호화프로그램에서는 키의 재활용을 막기위해 100개의 문자열만 입력가능합니다.


3. 복호화

  1. 위에서 암호화된 파일을 de 디렉토리 내 encryptedfile 에 붙여넣습니다.

  2. de 디렉토리 내 Decryption.py 를 실행합니다.

  3. 시간.encrpyted 파일 (예 20240526190436.encrypted) 에서 시간( 20240526190436 ) 을 입력창에 입력합니다.

  4. 복호화됩니다.

Warning

RSA8192는 매우큰 키파일 이므로 복호화시 많은 시간이 걸립니다.

암호화 메커니즘에관한 설명

암호화 메커니즘 개요

본 프로그램은 다음과 같은 매커니즘으로 동작합니다.

Warning

여기서는 이해하기 쉽게 pub1.pem pub2.pem ... pub100.pem 와 priv1.pem priv2.pem ...priv100.pem 을 각각 1~100 번이라 칭합니다.

또한 pub는 공개키, priv는 개인키를 칭합니다.

여기서는 예를 들기위하여 키번호를 각각 1,2,3 으로 두었습니다. 실제 동작에서는 키 번호는 키들이 랜덤입니다.

만일 ABC 를 암호화 했을때 다음과 같이 암호화 됩니다.

{"1":"1번키(pub1.pem)로 암호화한 A","2":"2번키로 암호화한 B","3":"3번키로 암호화한 C"}

이처럼 각각의 문자열을 랜덤한 키번호로 암호화합니다.

또한 복호화는 json의 1, 2, 3 같은 키번호를 보고 알맞은 번호의 개인키를 이용하여 복호화합니다.

실제 암호화된 문자열 분석

.encrypted 파일을 메모장으로 열어보면 다음과 비슷한 내용의 JSON이 있습니다. (이것은 예시이며 실제 동작과 차이가 발생할수 있습니다.)

{"13": "a0700b94d059aeb9224747d882db9e0c1c14164c56f9b4b3f5c2a293bc127611ab46f17c680a2b9348e437a6feda2b83ea7f456a09f59241fef2fe75c4e98803120e70c469c366196570085bfbee747d8154b0fb6e51d6a9836a4ff99144d64125b278e1ee6baa254b54ddd35457e399e0c61d745d634c54eeb7db9baa4b89cb37a636a419da730ecca6d893695200a2bdfa3b79fc5e93ee540d8c91b08d528140911594c38e0a4b63574d4edf60a7049389589d31f274a8a415508182bc1bfbd033013681f2d1bfb91a8e435c68b5091b0728539b14a225b615d918e62290f7fd5b1cea706b4db42916e7b11893b5568bb9824edeb6e6b4ec432e9a2456158b55c599c4bea73c3582ae176d6ec7607a92cf4b423ab2804677066ea6ce4afe3c0ee6c4871d4c455339d6136e158e77b961b9f9f1e5e39609e2fea5fab6d8c077fb81e3ee6d7bc64a8eb3980c1f2ac1700b9418c9ee18da7d351875ef3bf62c977cddf1afeccd499dddf48772dfcfcdeb0bf080e36e8420045ee077057b3360fd1c5687d665e8508b45ffb3b64d994fa48db007fce96dc0d9c9f7f7c7081e9960f41ab8f63d55e8d613f35b001e8503337002e38ab8dbc419637765d8e2bccf49016a1a8897335d198e58287b61489eebf713e032bc79be7c6d35f4e69060e3b37bdfdf2ce6b527054df5cbefa26977f2b2d623a6f123a9ea8e4bb8c2aa7ed23d84b07306766f20ad3066f32c2a233b1a99934c648e019aa2ae94bec85339acc153c8a83d4453d594c6969a5fbfeb9f4451fd4547683137927e49ebe3beda5dffb9f1f9f4e4a904e1aa30dbcab83875aee1ba011a5a5571594839c993afe23ec70043cd134d84cf1b0341064bacbd6267e41804050fed16bd21d1b35784a9c04d05f06e167cdad5e98376f5022cb05e7350f38d73c658a152c7d88ae07f7febc19ee626233f4fdb28dcf4259d06368dc2aaaf5822880f8c065f88edfd3f8563c24ddfa4ef6537194b36a72696563abe6c47f337d9f3f9a0d1d65c669afedb52e0a724db9d586e0926190cec295d9173c25ae95528011efcb288e0b939ed8a0f4dfa01760405cf78f07a4ee197203dd41df30660e86338636ecc23c8732af62fad941efb45d106fd44763c8a0a22591ec9b0c50ebf345bd271a058a0190916d6196b91ae6d1c92ea2def091b37a0e125c8eac37366a9264e6c93e75e3e69ebc5bdcdefe3965018d1174252aff7fc57a27c5422aa6b9e524f83e539154a6252550bb330131027e499d3d01d96674a5e6c49c47f7070ee9f5d74368a19b6a28a680bebbf8a6f67e8f97cd1a619c5ae9db91ac16f9073bef3e9349eeac258b8bfd3b79628d7eef96a2c187d27e6bfa073e41d4b3d5df403dd48dd35e9cd0c210d5a23d4cdbf4299ecf7ed0241cf8527eb6ecbc2f09897195c28b22f64da46bdeb145e", "2": "2464d277e793d82fe2583c051c4fdf23da4d750d4db5748579241ca774c3cce31fe73d3734d416a89435c4a68c5e9614995744fff64fecfe8bca5cad471c7ae7250b3aa4b66f9391703dce08414b2a44fb090fd47df5d7ab25d8d87e39f9c84f6b360c62fbf9d2e19b1ec9b682a27561b3c25a8eca0b9dfde89f14c1fe004e32cfe1c3c02f66dcfcd319a1a0e6e4c333ec54166aa0031730528af36abd6f54953be3287c7a7f74c25a0c7b73538b56126d2cecf0a33a4df4fe22c63372398fcf08835982c65d22f189db877bbfe2eaf65385be18915d8240b7ae12b9bc97aede7b250ff2e262f8a272410523c903f21ee63e18241d4f7155f27fa5b0e0e0eaa26ac3f3062a920c92b3c4cb78b0839979e19a0da544492837bf263eeb5279f3dbc00cd80f5fc99b324188bd4b162907b8f74105df58fbb8e070478785e2da7fa19a3e889f9634c1ff23d17e8441607779586ce889337c82d4d56b3831265e84d5bc3357fa81df8d76443193f986e1c4942a7b295b3505f2c1539c9269480981ceea40c27e3948bbfc92aac37e99c0e355182c9e6b6a640927bec67f97936f00961601ea6e044c108bf85c9abb0ffdf651b7d339520eb844a9a04e823eb99894869fed7f5e267b0534ae08ccce2624afe0061155e949a9a3b3477dc9d9526886b0f03d1f094806b7276ea1a87a7e37d1ef1f81c754117edbe6e72898d4a63b6b914e636e8cc659b2eefddf2dba727170661904c1d25486589c47076761e9467a922e30aba0151e3f3b29fd41df33ed8a3791fbee5aa0dbad42faa032e5ef15ad9422169ac088c1d02edfe3d2c86e49177ec1e2e49d36045af5bd4e313f42a31dfcbdb38c4b1dc08d8eaa30954e28a63521efc0018c1f70f01474ac9bedef3cdefe3fa97abfbaee1fae2386e2bff98fae38dcefaa16b42a03e4e7078c89c91bf5932a9d7d95585bb83a5ce2fa6cf408859acb9cf869bc5269328aea719eba6b8836144fd9c9e72784772a81636a69e0afa8dd20a1b7d9eb887d164bfcb80d521ed2f2163a7ca2fc8bba9f537d6b79e2f95d8eebde68ca97865fe5303cfd5544b96d583b95c5df8a5be194203bf3d3acef44a519976ea510d7470516c12bf7209580fd8268711e811e4d6fc5a7aa68f508869dc4f3c34aaac1df7f0fdc09f24302e8a73f9b5f12dd80a54ff5f0c86ca645f4dd46fdb637b6f3acb01eed052887f27f6824b77f1db7765d6068eca98ff7933c8186c96b22ac3677889832ea171d7873d88a2280980d4463dda5e74655d31b2955564d9a0e53ff2064f47c04dfd9419b6a6d06aa3ceb2ef5f7f4e337eab52bb61acccea7b9b674020d00d85055a71abb4d5475d0a0326986430705b8b24aa473ce5f42b8a47b973619a142f2c2828f5a71537707a08b6b0ad015249cd7bfa3cdd6593fa7784bf147c808b5c16bc48e14", "15": "0c2bb6319f05adb80535cc50a15c8f7b4101fb403369dbdc12c76d452451c932bcbe35b321925fc3b7784d3b494e32ad639e112642ced475b6d22a2e17cb9b4f768e6edfa4ae717b30e6a6c3802fd054c8fbf307ed7eab266e6333a1af5dba55a516c6476148a652e374bdf2d1be0fad9485a650ebb754a02521d0b33862ae571187806951b198b129dbf3ad66dadbdbdbc1e2791296be1da36ef3e8ff5cd267d6697320dae860d425c12752f8b9f92caef5247a5ed936fde0f0aa248fd5fd0c0349c5041485925c761a6d883e0873ebefe4b97dddba9ef8c68c0fd4721d9ea2a29d7a191eab86d9ee05b94e12735f41f3e95601e332b6a9a64939d665f3d3778b9c6b93e371b0d0746602e809825746d86a00076c343292ef4cd8f891c6839d9d9516721422e978df6520c6fd03a9d842da69882352eb092684b4bc06bc47d090942e35eb0e38497fa6b80cee03b8bdb68aa826e3716a2bd9a717e8741354df7924885e3619ff289f5221fa6ce3c2156beee71f4701a0ce2dd349645774103dd82b14abd22f32e0efa09cb2739874c66a1d12d06be5539c5ce8b83329d5a5c90440fdfd3dfce0924fb8da56b094ca6dfe3275b6305ee6daaf06474739268eef2388123293636b94c29ddfa0d35479f8c3e7bb309e2ff98376a0c3eb51fa1f191a1601c23d4c1e0f46914a39c0cb6feac4824fa3c259d6ec51891fe2fabb782f4367d522e848f7f706c096bd68a31a08a1aa3c9abebcecc4feecf798690e2b14bf84760eaee54a0dabed38fb0382e999a42121ed1d1761a0067a7eac8a14c87c9bd4c16fb26003a4a8ff16ad698fc92e7981b1b1d8302d6e3de4a1fb40a6156ffc95d607b7512efa037f1a5642d1a9e48a6d3ad66ebc3d393a262ea4e906d33069d5087f18e49edb4bdcefb46c19be45e347a88929366d97014fd7c4753dcb0c28c82b1bb50cfb0764f2f1511dadf07dbae5aff1b1fac7159cdac102d6decd5ab566f4396a2d4a81bff8f6922130810f56ee64a14bd01c7347997d6d86051a485a5dd280e16f6f20a4d3bc4e51444bd8297d8934ad00a28450e94176f734c90075cbeb995d4dcedd8b1498204015312896ad6dba8f353dfcbeb1c8480092b92cbb99fc83a88fb761a6027cf40d10a7aa687cfddfe36245e6908e1a5dd880481b5330f347b001ca339331aeae3d3224d13c883403c8713bb0465633a04248d135770ddc8e81b612022da1d95bc1837149db5884539e074e3a72cb7ed2e12c12446d400c6e7b85f60df395543e7a8bada7fe4d9e3d2ee673c71d180004517a81e350704899c27aaddd8d28b526438c2828fccb84792e025ce3f5dd0a524a7346454fd5d563796cca939f44a29782ffd7d9f217d7763710cb960c23dc023007d370226b369654303392937b3494c1da215ac527cbfa210f8cc4d2daf2196b239a71", "7": "576e9446209e649911b15339395e78a16fec714a4c444a71c301085f4a55711d53bd1d68ed9b348e60f2354da36035dfbaaea299750eb94db264ea7cf44555ed4fa1681efabba8712b850a1bd6fd5096c2f5ad3d57b286ad7844d026f1faa3c7960e55b7c49b62da872fd9db6d6669607248b4d648ab53f77ae4397ea9c353599c88e17dcf8d79f39c04065a6b1b06ddb53d0234d8efa3349caf961b14d2a078a1f9ca57968c3fb0963fae5910fa8241a8c2d4a05d6a224d725448c8c5e08246358ab231bd380e56d05cb93a9b3d5a1e830963ffdc4a746b9b5a0471c5e7361fb138845a7f1589a043a68792bf6bab7b4d962819016705383afd29999b99fc78e71d73d8240bca92b2ad2167d821cd37d8c093a0b338920d87e7fe6e7084b1022f502009718096481e710ad9e5bfea19606ed1b69e8804a9a34d74182f853203157d2cdd274ba8c034f4f12311145a71581478b3762634bfca42d8c823b9e52222cd978589e5a47e812ebb8eb9f84b29abdf7942bf10b05075d5584d6bb5b2805856e29e93677ce6f0e85356ec48bf4579c4787b903abffbade843c85dbd74f2fa6f3371412a513c23670d7c4437ffc1c279b595944318b8d7dbd205e8135318e19aa376def58a513fcfabb341b78ea62ad98d407d05b189a93f044c3c5f08c84ff5bc3d95e7de0e26a5046e220167f3ab01c418f2fe4f99eb365bf11f8ef5ad80857e17a3c0c8958becf4c9459e00e754ceddf06f1f2270fb5bc1083b79ca65a479b3ace18bf0499564e1a622d6bcda028f1c17eceb0c8211ad2952bc93cea375223fdc97bc9012e27529c51affb910417e1c6ac4f2761f86c43d911ab5e3bedd06b50987b0a772c137b8efc24c984052fc7a959cba87d198d7020b0002bf41a35405dcf952758b072fbd972fc8ef84fd149efa80985ed0fa898f129a089d429eb108119306ec1cbc201ed3d3c327f66432757a028a5b5d7a324b141c721833b02bf726f8a91ab09e90cc72b22db37ee17afa684a2f29a24895fda68e377e1f6f0ef3464994cc67c01e8c38a44f4fddc53552af2c1875d7ca162335f0afc9c14752a82e3b0cbb36e283ad348c81105290ca5d09332af0920a70f03e307de9c1dde43da1bc3dcdc4305a490c6c97d380dbb65d0820a6fd502c5f78d7640da6488e7b05efc0201bfab43f00baaaaefd102bdf4ee6529f3bdf3d0535145b3a49c9642dca6e3c6343f966d4ff6e12978347c3c2f734f4bbdd5c6de2c0babd54641cc0cafe1c309c9bb3308d44b60d71c3dfe6cfb3c013f7543defb68090fda5e53c728bf4a6c8e4d363e05c1ecb3f77ac7c0a8977855adeb6b63163475a5fb80280f1df46321887b41243fd162d850bf70ed859f448566a97b971956ba463783a9133891562996a64b495ce3ecd819fa7dcfe2115c2c12bec6d054d094e0899a142", "11": "17cca1765c173aac80d296328cb57d40db81ef0e3b95f9f625904eb44f72cb3c78b27f85b69d04cf868be99e57565795c7606d713edfbc69c58b8d87d75958c6d6197cb572889ed1ade9882504c2b78921af40f80cbddeace1ec1bc7e3eb976222fd031a30b55734f0a8e67c1742d93628f298d4a43df512a04a8b1120e46f4d99256c16ba61d49cac8f1b1302074902f174cb9793e5ba8b50c43685fe7dd49eca084cfd15593d3b3e1ad4b4c83529c6e3fd5cc3e583f97a14e43a672db9d538e22482fb3213e7a351100e8b143d8edeb36caa2077f49835cb3ad2c4cff9c61d7ad6e5e1d020020a01b418e8cd996892f09a6de02998123acc4e258119fdd854b77fcac14e106a6d6c21f734715ded9c0653b33dc5f31f54cea3386b0bf2acd8163a18fa6d3bcdbbb89d080c6dc80b6024d0ec0ceea82fe6d65e1b9a94ba264f6b7947b9ad6e44af1b20ebfe7c4a67e3acde2358d4677489e76704bd26a31a320fd865756b2cc2ddb08b6868a41588803de4bda85decc027c661fe4b341f2c08dab3a1af8c4cae0cd2eaec2dd672bbf60962cd24227eff306a55c9ed83ceef6c2cac6e741c81e1a7bc012c5f53bdc37cb70655980c4a799c81fecee587067324ec6ae902f2881385c029eb14c5573a1f0e4ba795968d8f6c9b2916dd59f732d13c6cbc8f8ba4b6b67060056155c5aaeb3350bcc5e616c28ab35010976d2505a6d8f8b8684cee13266cbd88fcb6f6204ee7ca9ca250c437d66f1ff0ec67192798f95630214c041f51869ca7f457d92961a0ab84d919cb926dda5f7097395fbe89d1193da05299f6881cf82438cb3251bc51f43cae6045900dfecca41c48ce16ce10c177ce39455a8ad501a3645a34d98fbc3680ada044a2097eae5e4b099fae5244d9f64f683870b4f92a7b6a0040a96cfc05a61e62e835a93cfd87b3d31c6ac3de8a51530968bf69b226b2611bb08efe74eab6a36aac090073eacc13527a505168ee45fee841093e6344114d0eb5e8a11ff88ad9f079c7c6037eb1ed5b2e638852f91a2280b4361aa2e1102bf038473a65d1a201febdcfbb3aad07a08b73488f1a281aaa9033041281e8d9bb9fd252ea6b2b83143a7d2b3c5f609c6528b8f802c071dfc10c79b1cc9abf9160910078e1f9b2d7265ce758ed6acce821b934d21dea17bd0f87b75363d372dace48a35fa98839e92a150fc665dea9ddb223a5efb38c0a03441da071c2e78e28c4e31c3c8bebd96c78da9eb03b28a02aee417dd33d7d8325f2cc19de8366bfb18c29237ed534c1e9eef0cc5c4497159605162679c3afd0b1d4806d5a7b78e9c9f6e4467e996cfb094588ba362408816ee74f8bb0f8c5f7ef37711b5c4c357b579f1b9694f489b4d811ce8a8b6ca5fb2b9f48de06d64452e00565e69944e88f1401ec2e8e4c153195939d2c7c87e311c7079aa5026d", "1": "085dd0c8d296ce987c553a217d1e590ca6766aebf9f1ba00bd8986aca626eee51c03cfeb5892b1c7cf0e324bc53f6df978f1f05cd92185630241d57e6389fe6f096ff8ad3322ace3441c6d887d7cf12018a3a3ba49f7983492aae8b1e4815cd2a3282701405c8ce2c1df4919df12ae1cef094bf17cd54af1407d2b15edb31d68bb54daeb95eeaf91d258726a79009725257d75fa9382bf168dc065fdfb596a130036da4387bcd23b8a54ecf9816d11f4fa707ee5762d07f5cc12697623cf369bc3242860a3d5c41829ebe91795e8e511ff4f5529a76795a1ba359cfced5e7e42a6a7ecb02c01d7796bf9d159aa32e3cf42ab0a033b1b4c7d59d5f402a893266148f3b0659a2e7cd92ff29d5fd823ec2448be258030d5603579055581072748582f6b421fd293cc33a1c5fb2e4b4254d4546247f3ed1f4db157c40ab59be1009eee3e86584abe8050960358b7db74cee310c0fcc445a41c9895b241089bdb16e301332c734d9b76d9f9dd916f8c234bdf87982bcd0645de57da07fa3b6a845f07a084b6ba743b712630c4faf4918e1f305f5d1406cf04942c1ec3844f92fa133c7092e5ec1ac0682b396622d90f15c14168f4c3a40f2866673167d9c9a0288f87b5c04d79e113f394d91aa4c4ac3e1e9566f1a40d8a4028a03acc8f25181a9a8f0f37f0b3a22ec782c1508d32a9fdea15171fad6da2f21c5ee71fb542db9e3f51b01fcf8d99d7804bfe857002a30776779e7af0598a2d4370ddca78ec483db73310d04b4d0d1976c58664339ffdb9f8d481a2fb83a6126f7d84d507f14bb74ac05065ed8d8c53171c6151135f7e5ccbd00bb6b8f17e37302313c91561cb17911919b76a5c4739c4985b9dda7c5703f0c6cf3301edb1d8e0f4aabacd2d3f70487d43a702b13a9f4d2d2369f913ad7db80a9ef89ea66e55f96c39cc0529ff7102e26dd407cacb4fc1d674e1c5df22510a3e2f345fbe5c25dde4ef66c30996961b05c1566efe3f1b540d7730c494abfbfddf23f9a663d3232af6b80add2073b8a662d472dbff5f17d99dd8ee75dec58376e78572ff58e501acea8b94e8295143329ab971e20a7f95f6a2a565045c8577fe3568ebe2c1e28f7393bfd96dc9ee41894fd4b8055333932e8dd35b72dcc2ef46c29a3a4bb2ecae7d8e6eb62e71b9e179a185fc85e80626a7521ee4117ccf774f0baefa2478905e4d8a77ec63a9f790213f3223f75c1dc76144ecfdce54b2bea508db514518667cc78c40128aec03b4f9b63a21e721c23251437cb13a9acee08a49b8f1855186a2a222b7ee2ec630f9e3ceab8fd3d0a689b180c10fe44d80a6721410be6d3ecebade1c54da646951a034d65feee0a428806e185aab866034b430f133fd2a13645be7ad91535922834f773704c2fabf43eb78fca8a1aae02d08d98107475994cef7abbb32da6298ef1091ac", "8": "073fc538f96aaae5ba434dbd8749a8e2d39e03de1094c36709111c4d4d882172834ec64474a6307038052dbe0d9e31170028aced69776fac6a736f4a64e19da9d2e626c27f1e7daf01516a072b47a1f937ff56f9dbe1c0c6517643e3db0d4c55ea871b3a73d9afd381f90679cde70697224a7d5938aff6b0ddd06f34d558b8f0a55247760d2032fd8f81d22c336e9bda08b7fae4817e60ca643cd8b6e637601f1e1c8555c3545461ff0f4c30bfad6ea7f6b171752e6b425d75fe61f5a88548f4f3f18a4c6bf737a089831e3b2d1c1832c80502880047fe35ea169321e9fed8d73db8ae251e2f93444a29fb5f0efc1f6eaa0b6aae70dea1c0d41ecf958b8295ad7c3beca13e4fe67ddb5d2592e1617abbcb2396bfe9e4779be0e78731d0fb1cc2609733d9eba7fbb83be5af9c8863cb8754424a99e4f74644f5e3d7d7e4013343de62f17454f55a81d0d3928615eb7b01b08b513142f40a1aadd16a09e1599bfb89b0a31f225d003040f9e5d65a14c92673e0e4e205e4cb64453812cc935f0b6fbec0971110edc6d62565d4c9d910eb3cb6240c9470b5bfcb7d330162697e5e97fbbd129d7a5850adce911417b78e21a56e9ed1bd5715012c3cf913eeeb6f1c67bb5ca521727969b48d60e2f856804ad4061b7984d0c78a1ceb48a52c5e4187c72a1e02cbbc8dde93a14ffde9c2c7b1d2f9d67f18d8d1ec97eaf8748f79d4326f2424e2a4a810ae617c3be13c188e5dc83af66faa0c0f0e036e4a32973368484b3155349323a9263b117cca871b99a3b112fc182efd4690300edfed72837b3e9b05a64942a7f228654d72e158d4a6533db362db1b719438e88b5cf2965b4bce954990993562743763e737eaefcd24689ff1cf7421851bb3f76d3a46777048be8cf81c49b77071a3dde3d951a85b3741b24c91fe0fffe4a34657c5aff28108a5663a5e2312057c30818f7817a77c57e516e723e3cd7081b91bb2faaca4153468291d326bc3a5643b75282a80e919da5580bcebfffe9e867b035f13d07e1f8c4ba9619ccd9346dc9c748028c88fbe3bfad9a5477a47d6e655215176928e1322cabf16db7139afb3cbbac5b1815f45b71d9c63801e7ebf8593c2baaf04975211df7ef754ad8765bb18e1e23bc5745a3229124b49a12774e11e57b63dd0ced674b80c8a25f6e172da2022f9f7dde28262cb8f49ddec7bb552172a948f045b1946e087e4d363b903a775424ecff3487033a18b190387a65fe756200a2062dc9858566fcdaae92b30637d6e94adda0afd64cca68902c76a5c94a1d36099f86f11848924493585e3e28aea25120e3e7729278d1aac8eafd52f3c0d07e4401982767c16cee98af0da8775792af2cdaf93df6e298335470dc6534bfa7582903fd55f55477560628018ba3f5c8ff40582c49565fd6be076b037fec7ef71fb21b6b6cb7f05db", "3": "579230ebf42e984047c43ee14239a8e5fc38f040a93aedd6be2b013684420d31e608263010cccc7252b6b3903ee59414dbe691c20bbd17db4444e9510c9b87dd1e4c4c20afd848f33bc74cf839c8e938557bdd12381200593d2d91d4e9006ce8316f0d48cf18206c3c22ab8a0d6bc417e4029ca99f6246452760a759525e15175b2e97e33ec1e92a5e7464205250fb388aa26a14c087efdb564937a4c006e793e1991a1f1f9bbe453933e27e8ef6f64aca3964e4e182179ef14a3509453aad05b114936925ed97c6eb2d62ce0f43b2cc2e58be0f6a41703e662a9d69f6571fc1185367509f02f6f7c96e524a37888cab3440dfc6a7768c7b799ef8fdc2d5555d69356cdd6d6962c1ff87d9e24f2d70c8b7ea1ef97ddf53c251226926c3c21f372137ead88d398d4fc77b79e02f59a7716b7efc29230d58d2c55e946b447e3de9a0bc92446fe2093ddaab25c81469efd05dde4b19e030a65e343b763d0a72799168cbe2a5c2109b511f4e54803bb8eb53330faa2e033f11b6ccd7cd62fa527443c950cc843b0cd0c5a43c90b08eb4026fd2475537361e25b10c605b9239271910467832b3b1d15e2b9980fec103b3ba235cc10cd377c1c0d75bc40678dac7f73ecf49c089ba1665540672d8f18fdbf63a0ff277ac5d97882bfc236291467b2d07fdece2fd0823167d9c44b1b7992ff1acfdfa4878c93d1fefaebb927a31923bebe6a321fd7fdcc9de0217d26da0a8173224ec5aa15805f4bc526d756c13aa2e65cdacc8c8830ce040894c25b8d41900fb9f1a3a969ae1e388ecff933c0e895f9b87268c6a56183050e84abb3e0cf94e3e26a8bc982e6507114976049bf8fc71f677ff1636eccb4799f9566c59bf75f180ba07dc1ed404523f648ee86f03c4ae140e94304bb4f7b876dcc5a1f1a86b358cce848d5153d7a087582cff3b6630aeba8cd3166dddf2785d0056e40fcb6a7c5e0317f3427117b02f67de4aac84ae97853f01896e6ef53a5760488fe969f8618325672c2b20e1963eb926fda5eed9a31dc89583377bbde81f39e23a75f473b8939203b6d3b0a475436d48ee7a86f4d6fd41f42ee33edc6cfc272c1981f5caeec0d694a840c666b7a84869a29430f09cffc8e412ffbaf6e8e10215b75512c41d0e540781eb45bd8062888e1ce5429f4fc4ec8fa71cc69b755f5d0d9ed8a7ffd71307262d5e4325c6da48be52f3ffc12fe2af9e0c26221869d1512c03cfd2b0908c261df38995f31b3ea87b4b2fc6aed1d3c334a6e3c4babce0eb744b25a47a32322a10039509716ff6ea13126d804f55415c703c830e6942c1422fb794a05d015a27c545de9ed267577a41e31966f249c3d680f82251127d5f108962a6cc953b75d9eb83a30f41191c3e579c618f492feaf85e2bc614e8dd3f3f1e434e6ff5c5a0b0abc17ba3dab092a8201195e3652159", "14": "61a17ba912936381fbfe191c9e523c8de0847b3474d446e3a44e244516714703ccc5904777bc53bbc550b3a3f63b2b141bde0d497e8848f935ffe75ae7495144aaf0a21abd67093ec68ca484c83cf979384d0fe7bf373036f2189a9de54a3c2b7afa23610883eb7a0d3fb472fb17450637c51a7316ee928f0b5f539563ef773dbec62a9cdf57395300cec94ab74885ab54ba694fe46edb30273f1ec0efd69dfdaaf261ad22ea905eed520753425ffaadf457750de7eb01971d8e3aec909155bee96d61f6fe669fb3b4fa627748ef66ad1e44fe5b6be44797b856d381b392289ee3525fe63472bef0d41f5d049467757b0389609be59a72142c7dc246bf2967f8642f7a8a76a6b61f98b11bfcc4d4f1ee3da9cf2c70d7478e7b99465b8d9f959ea7be4b25f9de9a898dd94c150f55cd3f8bcb32af40bcd38d68a2ca5bc1f80573ed0618d3e3e8d835dc37ccf25f2a510f68c99db998c2b19c394cd0449d588520776bb54fa0b432d1081a2dad586dc1fd78d86f080d736e3bda0eba7d44a7016ead3703d89b6fb0b77002489302089464ca9801bf63ddf1065eebcb0e8197307f144aa48f474bf96f09e07170d24f81e1deef4885e342823c844251f1e6c7f234b9cea928def69858af24823a0ce722da033da33a3b1db09085fcb882d387164a7c3de65ab533adf169ee7e9a1e47825ff68c31fd220679d966c3fd716c5fe0b979cfd554e566d6aeaefba33edcbf48ca82a3421d391015685158cf6b89d583bde8b9ac8992e94782ac4a6ff9b222c11ec93c68902c98587e30a5a216752990dfcd563bbccfc5bb22db86987c8778486e4412b52c8f9e5ee937298a770612416394f5fd73f47adf865a8f3ffc57d1fa89aaf70159f6952ec802cf84a7c6c9e1cfdb62f10a99b19a68754f97df441128fbd14de112060fcf5737f02fbadc09b37973c105dcf30ffb378a09eb4f94ba21755708a98a9bb64b35003b17356263ecb59472ca47e143d0f32bfd6ef510abf3c645d1657e09c072f6e5e20aea3600804b79ec53f29214b5eb0cd8a3e7cfadd86107abfac1e3fb15f49345a72c27b17d07aa88349ee35a19b5170b4d52f17b85a8155ce20321e19a77013ab97b53a22165233c6fce2c93f336c39b995646c618f61889e7ac520d9f5fac714c66dc247398c56b46d3eaf45fa2c69ed949d0b1e60353a70dbf12ab30817bcd408eea0eb4f9e4098bfef89817ab7e29efc24e335ec959501c2190b7840a72a1f09eb61133765e5472ec4c57d31e15e1f991e27c3cf093347114e58221f0bd09b72bd749dcadc79cf054e780a06c1bd4f929fd959b2c159085f90112bc7e6eade181b4c3c9983af2367302f0d8f50cd45435861cf7acc23404ec3d1bef9fcb7b77520f030f5e0aed70bfe1c0268909dd6a9ffcca7072d6e3a4b7c74fad0eeed0b6ea38f52bdb", "5": "60c9aee94f992b39063649c7c5fc22a0d5bd2fc4e21cca562a44724ff977e1927c2498490ce12d349cc59c9f7ba0696c1dffb0560dc3f8bf4014f745fcf70147760f9c04780fe3e7e5f70ce656e4db2730e6908181954be12a6b1c6441df239dba4fdb261dc7b3e289e6a8af209d01c8a7d31221668f4758f246596b214d08a56b46861aa2440ed0cce295c6fd86a42c569d7288cd58b105f8fb1371fdc846d07a70a33d4a885754a4cd775fea3b3c3eaf2160fba911d1b2b244112d7fa194f2133e0274075368ec933ac57e985945a21062eecb0fa83d34b8382b6b5da9d197d9fff2dbf0be243aca8619b03ebe7ab4ad67181ae1033b021e3e11fe13fcdd671b18523f5c4cf2f70d2cc3928566126406c010909ea23ce2af764f048eafb1fbe1859e02ef3809e82c559f99cdc8a0507e3814a2339cb12861928dc978d82a56b998c45b40f63ae31ebb7aa7982d74a062c79a17355f95ea9e71665860ad348ab59193783971acdee995903e54d7215b260d9a8230d5c46305084a43e196b76cc7d8fc12c7cdb2481720d372faac86131aec007be46c7fcd051bae6a74402edf172542dd25bcb9b34ad74ab696b28bcd02ef98975870073342b0c7f6f5151dd10c09595ad51da033d8042f875ee2d80159bc74ed9544cc03339829a717eb032cabf391bd236b0e94a1cdafce4edf203249b6a7a6022bde6ec1bdb1495f9678997c94d3f2efdd8fb1526ca60254e61f9a9d3fb96b057d060d16d8eddc96a2a0086c428ae79a7923e18b89235d7f0588a7139151181190ad533e8aead14cb6e5e677346b5895bc6e7d10578093dbb1f424cbe896c6b0c018a74039f18929e1b5be5611b8275a07b392d024ae0f3f026b4ec53329f4156d7ccd74598fa16e1fc79e191f50af8188be68fd0949cbc979cc60b2fac1d131b2590b000c3f311f623bf1d5c7d15b0edbb8368a9bb354cd5f7ebcfa34b35c9a9f45f1817e80c56f4f43600d869223154d6f0194249cf6700005b7f109ffe7afe2a4bbde8d955423640d71d0d6f3e0d66eabce4eb639ca409980505f7945fe2fb780aef1dc73d00df058adbcc4064de35bb7052b3afd36442475749e5283670bcac3ee7ed34777a8015919280d630e4ecaee1aeb5d56ed7c95a97bab9afebd7554fc396bf2fcc783899ee05e07aa7afab9f16da6ba66d31f1af9088d9a81c46dd45f6462f0a52f2dbf094448625bed07dced8efee4cbe66d9e0d27cdceb3ca7dbc17955cf9095448a8db3a432aa3f4e79e08334b32f18420874ab16e394b18147969c0867f8657dd0241dc41db7ff9c6697f8a228d3d63d3e612aa2fd838d7eb9afddf1e709bf8ca566890dd4dfb06432e541401b50892c2e6b46b35f445944344e73a900968860a75cae77f8d18320a658ea3a5d875dfb6e3617416ad6b56786af5d4e3ce840fd65e6345", "4": "4d2f49077cdca1659e8997c51be928711cc6b80d652b056cc1983e9ccc5b51b9a725272ee61deb1920d9da29a14cf8bd4628e4397bbeac33259a89ee20daf44faf7a7b48f92e763aca0c9c36bf39df46c1ea8a1ab4943e3847e69acd996d6c38eda098afe8dcc00802186df3e8359ba79b42e17d0809e757771c6076a40e82a6fe993e8be8e08fccd06d3a600677e20ec9eaa69c7ada73808aa70e2e1fe6ab663f51ade3ba350a46a40f0947476bfb3a29400bee227d8366dde9c74d8fd636dd889e3d338f461543cdf0437ee526084f81dd0699c3081872fb209d227335bc2b986cc765b12ac24657c1e56ab871ddf3e1462a9b20ea8dd8e9957304abc896430ec9b0ebdb426a09f9f259084c369a28aac1df37c376d44e052e721b94117d155739f87f8d2d118d390499728ddff083827683d7cc449caf7fdb7f3d1f9bf2f3fff75f564a3693728e19ef92391436db70ef718327e53ce36dbf263ccfe664f7bb17d3d72008d5771812a0c56e75a4e68c8545a5e775b2cde439d74b2b79ccc5b97b65ec140d2fbbd021efeade1fd650dc37258a956e8e71fffac340bbfb61a5042d04c571ab2c2a0608ba7818de622c2e40f235709987507899b5e8114817d918c1a7209231ab8ffbf93d7fec2e47f9af8ca641ff3f68b54cd11d3be5a5be1d9846f493756dfda5e339ebde1fc3e063e08e5657173cb3363d0c1ae0f5f6b07c7a9c37046f39bfc1fac6e0c0204b2b06e9cd40da7a0b85044b7be147e2bafec85cf5a1368ac5f24bea8ef3cd69bea812d2b2b001a684238c4af741b7c03ddfbfbc011227f14a868529d77c9c683e8f449aed2348b0824e16bde28b07b57bd1a40ef53d9e865c951900537faad3331e063f89d91d0e08069c36b0a948cd03ccb69c689d71dc1236b2a685fcf79225c34c2a199dba625f4936cd89026e90a8061073ec23afbae924d1b09f17dc116dab0621435dd24a63a9bf8077b4fe664cb6949a0826c38b2630ff9e760d8da3b49bdf5b35df2939485929d47c9fda8d0562149b20937994e4cf1300eefcfcddda122b0bc19682544c80aa31e48855ef3417362ec5fa48d406180d910b6e177fab2aaea7ead62b1888be2d181c99fc86120a376b672f56bd9279fa38337fd7e6edc34a3875d34ef58fe7e9505f955ee95b2329a9cedf5b95735a6dbefdd8ee3a967dc40f2dbdaf1f471911045845a55d4377278419169c3b748b0218ea13c2347012ab58a7bd19b38645034048cf2b5c35894031802058d63cfd0e6497ce3897ce0b0e507994967fcfe482a2823b90859e5f7574ea929918621ea264c7c0f28de668c234b11cae1be35e2c145854475d44c2e2d66c07a2e5fc611e740024be48785b25e3ac20c7c0af79ae961f6b4ef85bbe0888f982035b69869d71132c1ca9453877f2a2e8bd443f53adad07039c25f6099d", "12": "6bda29e4c5f656ae4a6c6401fc8b5ebb364244b9b9d5b67f670c5377f53bb44b598166e8a01bf94c21aeaef8f40cf786cae0034e7e3dd626ef41d10976a3be036f78d72c68af8c695fae5f244012f337774333b2161f452a1afdd5879b8a63a76a026683d39bd98818efd794f14f39add9e165e6de4582c8645f5d8602b4a4d13dee67b773e1925d66f920d76ff72c0595c028639adaeebc201b006e10fa7242c936aa6213317b2f512737db934a78b287e91e6a5c15896848e049687a710d5975f7633f4b2ee589a2cf1b54436c900f7af0ffee5d7847cbc4dd143aed82b81fcf4ea6d5a696bbb867e9b496544f7a69e4e907c492626da33a5a1b1d2e6197af7ebd9491b622b862dd29cd536f79e19603d80c2dacd2d6b77b7c04b4fbc929a9a8572fc75a60e1de3327550ea4d0d52a2129358c2b8de43b502734ba59ed73e5f254f1e000e738fa82a500421d62eef0b6977192c6d270150124f7e2cdd8f5f841c5247926d9ba55d7d8aed8bfcde1f5b92968b378c85ebe196e133f562699fd206b84c1243b5b64be6914ff1f304eb58e51a2d172ba8173f291b5cd95c5d03ff3cdfdfbc8b28d2ccd27ecef2ee13f96ce8a376e85d8fd1663350307a9bd06a328e07ee04e938b62f55215827bb0361d183a5dbfde088cb5552dfe2566d56e97dda6347a16a18dba6616bf4b90a5cb5d4282fef249840bb03a8a8c0281d084d3373e0d8cebb458538a237cabc5356f625ce7bc3f99f71e13070320741812afdce34c9afe8d6e0f1b4930fe185339988b3bf4eb85f7bbc1d738cbc680cd40eb1af4fb0748daef6161d07e963ce7c625a1d8338781e6b6e4d943ff098f45142dcecf198de6844dd5e823658302f8a6efd4c38ed54654260220d598e1cf8a2497aef31d2f6af4bbe7ce29565cf956b4dfba59acc8893bc76147edd1bb9ae1120a951e192b01a113950659549805bc1053e4a4bdbd5310c85aecfae356bf19f0100e6258c8056595b760eba819155b6b43f6b22979c32f4c6bf98bbaef4b7a91bb6f6954135081010670da1ff5be5d1494ff6d2a0aadad81ddb678a5c679880ca97f278e058d9a002eb0cef6b3b6c32b2806aca0b4c059c65383a5c3d78c6182ab741df36c17105e3e6eebea83eb22921135f285c3e54dfa802febcace0ae946710ad71240e87ea84d3982773c8853054fdb49644e5c690c3cc6e5916ef50bf67a87d56427edfb0fc7bb01948da4f6f73048a4a5d69f12647287ce151c82941c48a090e40bb51c4039440c9749e1242fba6b3b9eb962942fa387c4809841a4ead76e4847369652cd65d4c4a74d4cab2830e90db20c88b9c1ec086378b01311beeee4b7ae0ad02e5805e90dce9dc40bb8f9f0f6f06d7d0fc72ef0c9b375d201398bfe2f3f4dc157723e767976afcd4b331cff958e1970167f0ff380bf92df4aa8ef15", "6": "21f6e2279dc9bf4f58a28bbf51685d1ce4ce662a30d47063350b10cb85d26bdea223a50d335ecf72f702933cc6ac453ebb1daacd6d20bdb295b42bf82c57e6f2108d38afe0f893b94b6dc9b5dbbf2ffa25be729a020102c9cb373daa1753c5186901250f45e1818a788619098a7743a4ed9f593d72c98f9170b567125230af4dbb4de431a4f365c642d6e28a9e340f0728629bcef1ddced5b90ee4b333f4220f311fa8a453e329870b8d6ecb430b52866e6ff7844409a5572123b045f10cf7d70c8ff5c3175d4e9628082077774ceebed1b30bb8d974d52808cf243b091af54929c68164932f13bb432921176dd807a778feff063e6ad3a29c0a5069fcd8791e6cc2a9135346a892de7698368978a1fa32be19866fa83a28465c909450a928ebac43a1d8d5d853d86973d968a3c93590e24789e588571d2541c3eef659bb98bbc4d0fed1a4d1e660c9ba3554eab8b2028ef6f9c917b6aafd507188282710e752d8b0595f766bacdc1405a480eff023d3ec99a838570ac3f654c772fe5bed809d3c9a3c6fe4cad1b3b7b1f83201399ad8fc85699293c72c0a6849e375c5c4af43e91eb1a00ddc994e8f5358f1a9e34171d93f09d50d611f4002f401ea7c35035d73daab1caa8c42a5f333c1f9c69b1f4c253df65711978403dd68432e8e854e60942697bae19cbec7218f0c3811b32ed210df4e335d39e65080e8f146164d29b84dbd6130e11e282b24606ed239b2728ab7496db99b1cbf580544dd39b147d4ed01480fcc3ac0389ef13b90311d65176664187c62f9f4cd546a90287ab20c86094672042c2107dc9d3d7e8ab9cd4eef1a95f6ee28edc869369cee9e89c16bf8963e5befb034d2271bad120d7ee7592ab529f4a055cd4108e3e67a8cd7cde682b7f47738c8827dd1f78e7ee7c8c2f7953c52e0b4d5c33ec8d89ebe2fda61b6c502970926e9dadd7a79b9700e332166f331aaa45b5ea2255afb5dd867d0b359d2ceb3b3b908d25d4c6899abda05a3accd0259ae448d88ab8994d622ed9b20381847da5119db2a72878d40cc52415b29631d53dda150dd5936fcfc727c3516aa159b2bd932325afd6ece6e5320b4af9315fe43c0eaac7fd526e0383d95c90d7905443aa2508431adbef8bd24e44d83b7f3bb5fb2e3831ae56ed6e1ac36b81e511302caad14de759a81ff885379480f13b5e8dc80c4bdf33ed709875b717f9e58a68efad5ee2867154d5db315a32f06968561c3be4f33779d5edaae522722644f089e83fcd2fe3815be4490ee79e86b178d7c6ef0f8e1b0077705de151d0030bd33bf7e09422a6b88db498bec035303bea7f2a0613f96183eadb1ecaf995d78f176792ffd96a0c3e8b276a51bff835f4063617680a6b132c5e3dd2ccacd210d2ce42fb847ec4b3e25f613790f88b98984fac30fb8ff6261204c93edd69e2299ae94ea"}

이것은 Hello, World! 를 암호화했을때의 내용입니다. 여기서는 ,(컴마) !(느낌표), 공백도 문자열이여서 같이 암호화되었습니다.

여기서 사용된 키들의 번호는 다음과 같습니다.

13 2 15 7 11 1 8 3 14 5 4 12 6

번의 키들이 사용되었습니다.

같은 키(pub1.pem~pub100.pem)을 사용하여 다시한번 Hello, World!를 암호화 해보겠습니다.

{"3": "3bcce773a59bd14a4801a2c9b583ded07ac927cf72bb99dc7a5f953e04f9340be336162a860d4ef55068996675f4136fb8933ed00bfe01c9a451b7bcc4ccce33c7e72bc586239fef666b4100d364c633e9053bb609239c367a84850128639496e8199b44ad01f53b7def57b48f506071b4d9a51f12a14e60c75e96fc04e4e2e2331a5c81b043927aafe3f362b910f42f197b13075234f461e26e72d33685a601e355375b15ec7fbc4abd7d3585ad63a5a1a2a068759ce6ebdba185b42d52d43ea07feae91ce75f6165b4946a36df30bc3c02c63b6176ca98ac45c2869f201af95b6fccd075e41f034aa8b415124c7f6a0e189216186caa43795bcc28ab8f1db1589745b88df5dcd1070f189cefdbd9a5b1f807d46c95687b38221bb197121df6a28c04b2d4fc2bb79928f11dda72410709914c3e52485f210cb3fbad98b45e730abe414485e292895aeece69c0b5ba3e15f4e41c6054479e2de5d1a0a3ceb87743e18cad90be7c994bce1ec8b1ee3a55897b9084a0808e399874c27ec9a967879f47d54b502385daa435d77bd19033d270a08bf209209056d304d89ec568188b3d78e061a77b332e7e4492986e88412085a673e76243ded9153720019d08fd07b02b466349f71da0c11a3797338d74db3444d6b72e4d100ba5ededaf34b2ddd2c824e492cb9bd0d414552938fb1d02dc7cb5fa76166d0a7d6e7a6ec2ab35aaf785dfb78effc4955943624653644570b1a2e576f1181d377bff1008cb5d909bed5629e3d63068445a66553464ac20732a000f9ac79719b7b4303416e734dd29ab00bd15ebbaceaa9798d0e080d0199c91935139d057a570ab1e97e4fc2a079c5fc12198c98f5076f26286227837d069b2b7b1804fa721e51f3cee5e1e9e58ed7496c2c6a00c437fa22ddc69fe960c2c25625874ca73b2a1abce32bac60094c98e40c4dc32b89da754fa8b88600855ce8bce4549ad6b9d3332c4848dd12edaf810cf2e4e9545aefc90905fdc9350173acb2622061edfecdc1a5f4e8832c8635c359c07400a100c33d88a5744114f3a6c2a86036da9b9c957e9aef7fd8826876d75a1c8575fc9cda31a23336487259b1659100650c4d2a75b6b84e80920014c0f49f2244341ea71286d038d6ee9fd46dd7f553e620ac6b079a6e1d73e3ffd848ad6256e2ed60273b3e4277d19e3db53432810a7d12b8144789d602e23aebd96341f4470ea522cc227519f72997774125f37d0875bbbf25ecd952a1746f2c1aecbbed36a838ffb9794311a6c349e006ec3cea8649e2119fb8de3f15f9cfcacc7fcd615d815fc0ade993e7b28056c455ea9648ad88aaa584410252c43c5e2358fe2e3c68ca9e8972e8dfc6bafc901373a86db5106e56c348b1299c7d3786f22e28361e71e39ca6a0b6c582e9e6176b33e57ef6de6229ca8327aa047df13b1f0271930", "15": "7af1108947d7a31557b1ff08dee88109b7143830405c8ac9dc3ee0684a1b24db10a74c07b5839a1b9a354061675df38adf10d31edbfb16565b19dba4309b4b2f8cac825f6b91610ef2361df216b4cf33034e0a88f91089eae6952d8afdd57578c52ec68f7727a8ef12ca25278a11e6a5cf3c595c74e58b81c17801e1667a6944a87e9d1d5681cae9976770f0b78db1b3aeaf8b506ddfc4449588daa3b58486f380da43ae11da3a5a6f1446e171d0f86630a7a344468d0306538721428e662aa1b96cc25b2cdd023a7bd1715746d46ba96a59ded7139613158420bf81b0c6978f17004c5e4c90b1c57250a477e5ba74f6603dcde6ced584193d5cc748064679a72188574a9db4fe45e500b11cf2aa77f17283404daf9e881968219dbd2bfc2581ff2c6e1072380af30bd65c655e0fdc7e20610391465f66caad32746e9bcdc70d30608ad407b0b3f9d33e0c582d1affa97eaeb88bae037183c28d38bcdd2b6f396ff07fe2f33f9bf8c249b078f6098ac255a6351e6c658dad164d78fb430d435f7d4f4f748525c3aab886b057ef9ece2bbd7065281b5a2e90c5baeb4a6d0c3534bef9548d2f6bdaaa618fa13a971b8497706ee13c911964bcedc03d6bf696ec773dfc356bd21b36d97cc52e07982a91985b1e55a93fd6241a4bf406ae3b98170bf27e1f1d6c60f7b6ce52c37267aa48b54a57f79777bb75d4125eaeb7363c5da40bfccb349760b6e2636c1261988a46799270f20aca2f1e1cd649eaf455a98b0eb728bfae65be101f0543db841cf09f9aa14eb9d4d0b3916b361636ecff988bdccd88c233b0041bb7f6aba34db9dd05cfbef8a7daf243e9d17980bd71edb7ef6b5b8baa1d1946f96874f5652e54bac0879aa0b27a738fc354ff41ac2584c3a5618c270f0173b7127065ffadf66ef2a6a1848d953c35e07b36e97e38e74985e020d92215922d424ec6fc28f9eb200f5ffe6a5cd423b3aab84589778446fea32d18a9c368129a96a3d5e04705d531587de0d06b55dcb9bc000b7bc6f67543a0610e854657b4d6a9bfc32dbcd7049a21be6358bc68265750194ca6bec27cfc9337e6b0f254464639b723fc3a48ae5ce54c0336a8cea238ee9b4ef203fd92dc720ea8b8b9e2a7fdb84d5fae848d1aec510a09342cea569f27735294f870632bf1606bf20c4227ec90ccf06098b21a21e24f492ab08ede4b0e3ba10556721ebc71088defa85d3e1d37f8775199a28eaf1ca3942997c179fdde8cc788776dbd4acd3b36a7f0acc35aabbc7769b0374dadb2d444f7998f4a2dc2025e9e64956d016636ec611a344217d48a5d59b5f334c73700bb21fec2a8d09a50c379766c7408439ebe27971c3481d6d3e52176f4f6de414940ff9063c7dba9032a779ebbd2488f8e1e26dc6189708da4cf764346a7085e9193e2cf769843a1578c4e6830d85606c0a6", "13": "7ceea47cffd8a4385067d1817f7b153f7bb1f24d4250f053aa593685401a044e104361055fab073749d16935e4d91b267b02625a754c74135624412fba49cd14de481b321d5115f1ea06216d8ead103089e1089c9ffab9469d935d4e8e57a13b0630e62990ab3227d513af642f1c4a3631a73fed2be12216a4b12966219bf14d27409e5fbbbd5c9c1ddb6b872991ffba5cdfd1c52ea9ea233998a15877261aaeb0adb9013a0ef90a3a17f22e833f6ef130889f2d3e4f1b8a04c88eec8017b9a37dcfdce3d090d86bc3001e19b6e7ab379e0b53d506251c01f07a42145da9ea65d8833fa7254bfcbac4a04714786bfe43533798f20387a28833d70dc07d850d8370eb4a01ed57ce70115756a9b1565ef2635e6bf8bd303f3ebf87a85f1a86048eeee75f256365c1edc2a47dc78b49c7d43b6223e64e70a23a4aac38177c0d44bc2435206ad9c1aa5c859d3720b102ccfc3116975b543486bb8dced9f0c155d846e77cf9af51db5bb64562bc6d56df81dec027c034710bbd76d311952946adf15585f4a7b2f771d0a54546386bb9a4b56389da43c92da9d67bda0d5a433f141bf1254dd5f9ad5948c54f362f285e8889b0a89b7da4a2f5da4ab62a6e59e3998f9fee548752e9a377804a5342e94f238182518ac91e43b2f88713ba339e4165c416849b6d0aebf550d91d7b7691a7f852f176f9882648dabc8f2733a4021591cd922b3886981ea28fb19ec02c22e8ee2c70a3f3c27549ebaec9eabda433f28b015b57afa82b196e05cf2fbce424ff6c1975dfeed781305e889513f07c7f197bfd9f62c5e0dde30705304e80cdc44e5b07cbf02e1ce79e5be5def84d17ac1434a501f826aaec10aed670ce74f83534ace12d05ca769eee6179a4753db032c0250d1e22b7668afa745e0b20c167eb952b4ec92d60db02da518f2bbe466b1ae0aa40e5f604069df57c241c2de20d08d960d4f43dc54aeaafca3f5685b4d153e8252d63853f23c92b351476c5c1e76cc80b3d74e5127ddd2edcff8faabbfc3eac39c7da621428279ac7f3b268c79f30519520576ce685ec404d59023b27a0a7425007af4b608f924a59b74a8aab457e4c81760a7cb3c82a4b362556ed996572f416592c444eee6422f4efec6621c35ebbc6c2e1a16ddf285df81a27b14a0be8190a684c9e82884432338cd73a1e2ffe67f71da884b8360ca55be4a2ef29508528525756c5ed428d8cf88f607583786eef5a896b9f8d3e278d9cd9198c2a3166a44b96b9899b6b5ccbb711febcb5469e2eaa215c89361d766f033021d523ff5bbcc5d4e41354253dd3d81bae1aae2e92bec8582d54d19a128de1dcb9ef3db29bd818a5ede59644d3e407ecb9708030b9b5293303549e8cab74d7ad0f4be570d81748a8b251e2921ed32764bc67422857f529d82f89944918ecf16eef05db07da75492862", "12": "a3d7416173f9db6ed0ce452cd35f36eddee664074c8491b0509a599dc4f3c3384eaf0bfc7d1bfa79fa8c6a480f15a0230bff120a187a075360fcdc9b4c23db04b0beba805a0f06c415833380d18bf09c5cf1815afe592ed13596cf8b91f01a1107cdc4fc526f5ded4740ef89034d7e7342f9012dff0763b8aea89b53ed33371e60c7cae488988f5e2308ac406a250ccf1aa671362fccc39a71b1ee533d7fb03b21a1126bd3ba0b3eebbf52d68be2676dba5ca597777da82070bee1d3b69521adbbe3c100c23b0f5906b7810b743b266c33ab37b937981b6ba0562a5f32d0ec7805b531dc3e2461369925f3283b1023eaf11035f12bd3e539aa3759cb3ff738004689db7b8e4cac3733a615fff80efb6fa89473ec46b3d6f23b4ea3a454db4a4faebaebb3d886576745be996ad5424546b04c2ce08c531b8d8b9f20b6a1e80f4368fcc59708e554f7253e95362ff8e36863e08ff3bb3901d38fc6d803147b53b2779402994229b4369db97892c7895c974d98e8460430fa16bf48ff2a9e3b5182ab6adbd114f6feeb039eaf2525f5bbe6d45268378a98e32becde526ab92278f4876f38bc98755f28af58c5e9dc50238dde374e3e2f5645fe106179b798fc9ae52fc1f434d5f8303b38594fa60ac4538eefba2d5dab4feb18d0f107dd616303bdd3e2e11069029bc624b15e943b287340177b173ba721933a1ffe05f6f8186a66e60574fba7459fa79572435d2d7ca2c08a84eab69a9b791ca6cc498583a20bbec2240bfe227f98ba1e1acc141aa9196d34131b5e79b294db1f33bc82dc153bdae045de736962aac5bc67d5659c1038dc79e82362bc0a161bb2f49c7c22343c84636b0065ff1a609176fe56efbf2b31a935bcf0325ef100a15152489fee9a3d1c0a051c5c4bc960079c2c4bb32af914a6e1306b88e28013e8f923d17d526dce64a80880d1f540b89ba0c285277ffa75a3dad3f4237723077d658282e02db337d07187638653ff2a756cdbc06041d79c64d37c48120a34059a5581016215ccdbbcdfce7b3b9d27b4d294cdbd38b3b649c1e089adc18ab2d1c8eeba5b7b51a647ee1080af4d0022957aa0303b3e88762645025ed77d5fa37f2d0f058c46fde13c0a794bdb3e8997727162a9b5bf46614ef485f3c377da680a0022b06177357cd785705de674e37479f5a8f04ca99b0b98794d03b6c173af864765bacb4a2518f5589bb09d85d01381e61bb94b23d7d6a45fe3320afca051d1397525c8eeeb4b71c8d6dd20f304fa47046446e3c57eb4645baf2d00fe4a5983ef8b92d181a9422563fe5795ea3fe43072443804913abe29c566d402d2e2a04829cfeb552effb3af33b3dc99165478ed1bcddbe0b603e66d9078be359e5cae61276b92b54cf618515692a114af408f667d3310b836792d58713b423344ee8c47fcc65fc463d26f7397", "10": "5d7d9f59bc2f2e5d030c5ed2b320952dea612f8d4420f8e00d466b0c2229ab6398db1c35799cf3731a572008b2d6b4384c130e6523a1f4e761a5c3147fd2a7e941635ed0538b3c368af26135863dbfe43e12b47f2097dc6f69db3fab5c0c3d92614144bdf2a4b67e31b82262972b2a4054413ba7e12bd3c61b57723ec6f2ec207fb9991d5f15511070d34cdde4396d17dc55b438468feb47d7a2d78294f3edc4660cb0c15711c1195769256e2e83854295eebf1cf522bbaff0168b458b96a781c2803eede1b64133ca0f9f80aa550a8f307e09859cd486b81ffa3430220d303565c9f4b02c86d7d3dca7aa44cc36358b184094ea9143b7b6e56f2be87a94791f8fe0209b00da0820ec5a2739e696e4c1b9fba0aa7384edb9c45c7f23da567f3af853a35cc802cf5a2ec7feb9bae61da81fb730578131b602f243eb45b9f70eec3e3af85443c359b982b413618713c60ff0930548be3b46f24e1f8842de56f6f7857d2669abee3c2087519bb85bdb2fb26be1095c28ea5a495fe7852803073e2b09116c127ae38e795f10884c9e752a4a429a7f93fa673b476ead4a118c26515ffb4f5e53eeee79197e6e9921e9d7ba7f2756b38580efdbdb56959baa76cf6ee576785d488fe4193627816273117e5620477ad6f7b49efd53e702c845d379d470c05da0c4d4265c2a0f49988e696625001775768cff768614881a03fcd902333a5c395d753e4874df7875bde5358102742b3c8739c604e324b02ce507c2be66bf19fb949a5abed809c6310b1b339cf6660c3b9d82e010569bf2e41fa109ff4dc59a070cbe7971038bb38128977cb869878f078afc533c02691dd1c76bc0b420d346f64d6d5683e045ec6f404abd7ad8f05edf8b83d8ec2cef0d590f3302be45ad49247dac3ac6dd15f9aa80365f5abbe4ffd38636b098e1c8d61cbffec8d2decc7775fa416759b11a112a59317a516853b264234b2a402beb3de08f228d4423ceeaae154cd1d7eea623d8b2cee47d7d7007e6817d0a485bf7b1f1924edf5493f213246557a8bb9ab978ed5b516dcd4d611006e8d0ea36b084c11d28d7b4e965b376f37cd53a3cd6ab312d3357e048bebbba9f8ba51a25f3d12fd86ee0948fe92623ddcd09436f8724d4b4a6be469e6437c551f33d8973a3877cb6e2706b1ffe63e3f24ceff9d565ed1e0b3b84588e4ce6afe5499ff6ab9caeaff0fb19f1e7b589e85521db207caf70c57628b88ff2329ccc47f8e9fcfa96a16e8cc8e33eae8e5e52d525c527f423edeea19657787228a9da7e2e014da2c364443ed7c34ccee151d9f7a3cb6c88d3d0cbec638a9d34cb8ea315607d9c9c0a972a918b376003ee6bcf479d787f6c66a60bd287192375a68f67eead11ffeeb2b7874c3c1acb306f7717d03eda5796cb3870137c6fe9fe03a8c7f0e8ecb91f204877469887567a4ee1", "11": "7dbae37d6afd431bedf41c66509c125f7d51a129b32bee629585796267b8c4bba5627ce7ab53524bcb7d9395e21d05f72a3c49e968bfb8e8bae61d6bb65b04a7d0190201f8b3497ba36440a4f34941e5fc0cbe566166a2ad1f3535a9c35f8f947ae7695c76178bcb4a0b57ed1a54cbdd3e2ba89793a0a805499d7150341eca9fcd555d7ff0cd0c1ca34c98490081e076c757ef8df85d518b7f108a5674af8e8e34f4dd4197e5cc80b855dc3309de8328eb24d0f1a8f103dbfa5532ae00f20a7a6546a89b5ac095012062ddb9513282b0773adea7f0cb04627233cf4afdefb30d584af91db9071dec8d02c99b55d19bae95297d409001e2f700e3d400364371f6cab1edc6d1bb9c8b96bfeb327a8a1517910bf5506cc17913da80a0d7f3911742cf0af8b025a2d080a9b6a65807b5da12e8da32e0205ce1c1213a44bd6a74973b0e3fa135bff177c4e76e9e9eca1299b76dffe4674cf95d9c617cf37ffbc2977e65d8b6eecc14803aeb28788725b0a863344fab1edaf35e9ee17e051fbdbe0f0a47d5f51fa8eac93e498c66708cd5329cbaf1dacc9b1cf13a9d6576d1dc39d04912373886e59d6a3770670737deb3b9d91d64477007235f9fe87f91e80711a70007ada8e2ff7fa9e69058b77e0195b2dfd843a1db4b155e77cf7b9d39caf71053de742ab461ac9a2448557d765fa1565fd705d4eb3bbaac64cc2a1dfdff403f700b4ab2adfc85b2b79048714b23685fb011ff706461d685cb2d6490dfcf7e5eec61e7371e92b119494a62cfe8ffd790cc33e2139e1c25879b672c20e2b7ebaf0bdc7a115d06179dd4036ec258318c15268627c26b67b7108fc692f8e3de66ef3cd8169925cb1d4a08f0cefe1c40188359604fd3d0e8473e1a664eb6d0f86c95aa189f0e46347bc982012d73070c4ae0f9c7baf509ac2c3e35fc4e3b40ba169f6f757e72eaff90f1e7eeb2fe715ac65738e2a910da272c4f642492d4893f043c487d6931a97eed4341ad8a4a3a2521dbdd62c8e4adbeb99a43ed08e53c61a773e84f0f28cbaedee262b1be6d3c3c99536aa6e66b381af57191adffa23de2576b0151796686a402d7fd8f134f1871b8412295838b052e233277f570eaa62e58d008a58f196fa2e6adb5d25ec2bbd206a130b6fa4bc0e5291045e0718beaac0725e8de9105ad0ddcd4fb5263c450de60d4a8941a6e188b5098c1e8d73a2ebf4c090bdd6af04c1af5aeab6841146a85e0790dee859010de606cae3e85ad691b1322c28348fb641d5fe6f8539e63fc90626818721c5fc62862922fc853839f357b89ab227f02f4d2a18e511ff3297cd629c257772c113c2647a2efa075dad0d4a35e522fcfc5e4bc4aa1de9ae5b452f46091975efdab75fea30c8d98b34861a4f11b018b6a3c058f0171c174d0cf678f819799cdc3a31f766d3eb9d5df80362efd41aa", "2": "0574d583506eae327d35a9b3cfe2a2a8524463a715d019fbf99091e392fee3f9a2415f63f62bc4780e0bd6b3cbf61abaee13110660b637a5e1b197a7e69c1e9e3e810e32ee68d97e65b1444da21b0485810cfe4e9119ff9bbee05e78a3db85c7d04f55d86cb193490a9472b7a56aead006e4ceb67b9f0474dca72d4de27f50e7389e996e734578e415a5dac7ab279b1856352769cf172c64a85b00bf915ee32fb0b56e8815f492aeb3be6055415b03f81b770d6188e18489e8c991672d462da9392a675089f8653f812e1500c439f705c99b10fb26bf64cf311d2a2918b429f7a64f7ca413b1b32feb8a77b1caedc7b14d80976c8b9ba1a3e152986bc667c500698f5b28a866596f8fa59b50d98e4389e4c5af714a48417e8c29ff3741b7aa294f630649c3bc1892091b0b28e8fbdeaf35169afdb3fe0291db9a05da46e91023db40eb6a475a1e73f9d495355fcf7d88ff65fbc6ca0ab4dbb0b74ccba6f03dd34b05e6e144f48c612635ea1f44385827beedeeff5d21d7c08bfcd30f43dbe5bcf2158749b0692f831c0e01694c67b508e6262f9bafd66d4c8e53c50bcad87cfef71ca13df3acbc26cdbe7139e250779cdfc5d820067d639df12a4c875cf2a4db3c647451ac5ec77915550e809e9a0a99562936a5b1d071c66d731c8b8039611f6572bf2b1de8ec13a59b85dc5e057999a22c982ae3a8689049ec846ff3759648aa6c888692a065a03bd1117846a6e9e07b2a0e7fd9e0df7947cb38acfb9a6a36bb790e61bdeea48b5a83cad416f700889ca3082164be47fc3246a5bdd61ac967b7454c390f9abbadc56d7d90826d8566df49e065fa892d54d4a0a7ecb2eae532045c7418f83771f09c80e4cccdec28f90f885d6ad3132cbc6c94c34e689258f7cb594469af225dc5f581805b68480b729fa346f3426895314c639e84186910f8d0cb01c127970d0fe40b751f4549d51882506c4bb975b2ffe2940215dcd30b038eacb7184c99fcf2d6c8c626907285bd3839838b5f16bd81402605a8f60ec1a34234ebc3c65b9f5e405859e5c63554b6c18c2d5708503ad8e5bd0bb7d2a12bc1e7817891d3adf25e8a7c13aac119e3d9147e76e16c32c3373a089eeced6f8a23f8f7509a4b3233fcdd292f71084d28602ab69f7da95107d1212afe58cc5805fce0d7addd75e416be8909246b967de07813d3030e4914d34b94f421be598a8af44872423c45a55a62b4cbd44f17bdda377bd3f1c4ec181560d3578767bf45be4e1370e90e72fe59a69f8d5ed2de3de07445e6be9c22115dc4df3e7e29895e2cad61749d2350ea4b4b6a133dc95e5918a45b68ecdca0f2b3a3ddce24982f1142945f85c65d0ce1f5b68dd31dc8338463f002d8b445accce8ef6dd753710069f0ec759e1dbcb24bc554572c4986b6d978b6c88c844e089a6805302c3f31832d2bb2", "7": "64776647de00ab1cfe578b8ae776ddfcdea202ac01a4b34b6ec3dcf0a396dc81b5b79978e22449aa646dbd594378ae08652357afe33005aed9505f8e76928eb8dc4a18656de397ff31ee214bac7b1e7e86c9f5c5ed0079d0204e1588df92a8c3cf0f8aac2d86f2749b911a687e18577de7d6bc85ae1fbf4df4d4ee74b58306d19bbbb26fe2e3fd8d764bff65874e796f20762bac5c52c20e83aa99a4a5fd69855e5553f16e8b19b936774eb5236383df0bb223646fa53b9d0d7501d4994adec4b081ad91c1aebebc764d977384590f0f3792d5cb251d7d1dfe046ef5de9c0fcf2c2a2b6bc29106b5891abb41312a2ba83869ba5cd943f43007468e9af3d66f4dac0a4fedf469d4acce05cb5a39f9fe6a703debeefbc7545e9454aed24d76ad155006d29d514e33d90237f050317263eb1fa4e109fdb694c0740e3bc78f69a7117cdd57f3e01b368999c1611a415065dbb5619eb0c668b15c14d1ae2cb9cce4f0fe672861d89033204ee21ef1d3e11d781ad177cb4ad723aa1ee50c264509928bb4700e2a14beec4732846f91d2586a6f16330ba359eab44e9636957a8c56d74793f3374fc44f98f30b57576d7779bfca0701e5f0d2e7b3b475222c04cd17ff36aae86cec1ba03edd6068181ec92a44e45198230eb4c02c9be4e221afcf760a09373b7826766423144cf2bf5c6f6a2b56e15553021ebff5584b151d720dc2b330c4eb02123bf67c276cf67496af95ed2eb05a43f076465ed8c1553607695e7833b15b6cbffdf8109fea3b144756ec8cd0b081090567d07227721fe84cd933c8c1553c89a5eedb66781baf7fe17e3e513ce7893cb90fb42a03d0503e7b02c11cf33009be1043fbd8e66ade8fc81135878204496e63ab43ed556c31faa4b1c33287332273b26a9a12bbcea7ef6c3c28b8c67850d30fadfd902270efa8e339dd31c4417d66c9bdaebfd3940a043712eaa369ff1fd0a7bea48ff5dc39f1a04ef4f99aa2d01c71eacfd2b6b1b4a28f09a24ac67d6f3e18909e44397c56a041eae955680e865e725c9564431051cd71dfb0e4cea6eb39550e34eb8a34573a6eab1ac9ae2595c26ea6920c632f6c69873b8938ff20bfe9d4834c01841f525e89ca76f176dc025fba232390e391a2ac6f6e5fe552608bfb51d86361ce170baa011476f3b2fec926b5dbecfdb4bf8e18bcbcc8faef69b06f960985a3ddedd40eec653582cf516a6ba56cbfd78cf44c88c4da6df2d608dbdc3611f145e75ddef555a7d906636f1f756650636a0541da41fc3602c9defb829fec1af4ca41a53a803b723675c6a99601e7673e75ec26ba457b29f03ba265f360b4cddc9d3794f75fea28efaf6271dfb353801d03a3ed750757c4e3f5660de3897e74fe85c2b701a54f813d081a330f6ba95827c4f4388e4d2f5e10221cab45b107aba881fa5d18e29d735f8250", "9": "9b0165e86105fc489bd9e4854d9714affe163e4231940efa07276b479af4097823cf506dfa687035c21c81e63742ed70b483427610c38d36d4314e51fc8b7a57314a4504c17a56f9736046ccec6439011874a007e02e998689deaa71df88fd961ff1952d435f4a5c08f972563a879f61d34dca89277abc14311d4bac627b1cbaacf7b8bd9148fc2eab3343522c1e81837f04b982b627bf59c38489d16707fc2e32a143bee82237d5905e07eb55a383426fea266953a7d113f6e9f436ea3072b7401d7c57a9e4a217892c1e8d633413c9edd3071259f21a4f48c574f80091518aa54a6eb583237d080f71a5a15a2e86cfb0e5c4b99261659d0a1195dbb77c641a4d2f23d18093313f38e33d6f001dc7649eb64b130ad2bbddf78792b3ce9d048a57b336e7dd427b4514afe2d0d01189b7f4206f0274aa428a7d3423ff803e3a133b927d36ef3d5fa375669f5bd4ba6071b70b094700bd984f2e36d92466784864e32725ecc1b829f7afc2780089bc0908fc4f2354c6ea5ce312a5912691aa8ed90aac8f6a2d622f8deaee08033ef666d4b99d0a1df7d7e77625c0bd27236a83acb55555be10aee072aa565eaed0ea706a502c2bdf639d341960c4a169616907cbaa6f32ec62bc893933aec7c504a4dfd1f481a689b5e921025917b5d17023bd62bff6d6a9d16cdb05ca9645b15e19ac7c435391f015a411fe898eb00b2b0aa33531b489f8136044434ddf4a9bcdf1769a60b204b38d28736b4289aae29d0fe715150ae39253aef40f7fe40e64514980cbfa35d4a2bc447653a32dcd896033bbe871bd1f96869c52e3c621fe56a14a90f92602241f32e262d3eff291b8dac1c6271902ab834f56d1a62082232a88e3aa5dc146e03acf2b81e6dde0b498310dde6242d3dd580e3309ee62f90ec4a3fd715e12c70126a6cdc874b0fb327c78a61165b2cdc3229b098f8bf5cf64eee9a31eba362bf6f457b15ce75209b2f1c8349c70c868957ba3c59b940040c94e44f50d9eb90e0134a6538706b1078d5966daa5b71fd9b41275dba960cdf77cae5d2c9ec1f5fe254d4cc9bf63abc1fabd9b3854fe6e0be3f2a130c96521855a6fc857bf035ebf61342a1e7aeff2c093b9c2c91448d0397e2a525795c00a97a6df04bd4d8b93aa1bab4dd54b794de55122c485fd35ee7da9569b7323f69954657afb11133292a1b70b989f633c452a939eadeda7258513875d805d690c5112db1ae150cee19d975a7b1a490a85e261a8a482c18b0f087d051bfe3fdee2ac5c88d9cb615a1dd2d374a855aa64b17b45da3aa1138ae10b902e691c84120f0efaaf20f4405036a9aca5f8edc86b6bff464d89e998c3433d1c671d797e60111175a3560601208597f944de68a6a49b19514d0abced2af64d1a6085d3fa04cd605366df55889686aecf2cdc9947bf4777c37837c2be1764", "6": "2bff1206d635daa523e500de3bae609535d06438549b0fbb2f6d39311137485e49e7c89b9ff3e4a9f740fe621abc738fa5be9ffb4f551b6740f6bd67474f572c3317ae5f62b39f64d5b213bd40f44f5fc4357e89c88c8e2832a146d372e6d63812b4a1929382146f6986c7baa2b2b2d47f37a2fdd240c50f49a77c46aa94d509968f5f671340736b5f7d0114d824d628dfc701e60f67e70d1ff6f074cb45c204ff08156e4e3c47ffe164f48bc9bc9f9f38c6e85e8200c26db786e6b754eeeeead36845fd171b7f1a265430e51ee2510e605cf809fbe9402832aa8362fa44bc69d4130eb303e6e5e440a9f625796af226270ef3d57d7b7a96bf6ca9c2ce2c7ed5e897fbc926761f2a05e772e5e26ccd1a6cccb79d2dd9013187a6b145e084200666fdac9a4b57344761349e38551d2a718b25d9404d1d1db53a4f64ac23e3a6d0254a5ffe4d44e48424a6a1feac814e9ecda0331d76d064da76b52e1b33bd49f4bd44111b5462b63b03e2a945754116e6775ce2d1eb4e8aaa7789eee32e384bc490000dc53473fdb10734d67ceadb5a5e4b35fa44f41a7934265c1c52f751f2858494f8104187d39bffe9998651301ae09744f9f79767b8e38210704427e04f54b26535737c77000f8475fc945b33199bf862c1f8c840c932281758fc82d93a73ee7aa50f78539bf41c1ee2ee6601121d65a099e74d6b1aa46deb8c133fd656ecff16e9a09a4a82005f23245f61b6e223a685cbfbfe4316bb5473753b23f9fa2f61750bf344652c1832bea0cebfb161a2ca9167b9a5667e1114c686a11530bd493bd2dd3b6b20442dc975e72139ece8ddb7e16ebbff96244e14b1d63a4d5e46cb7299e2f7974a8e1bafed8f4bee52c54837649063cbd91cd9aa4c9c36ba50ca6e77f116ffc9a1eded9e0b0d36280102685f3e32bb5736e44ae6497f81470d096f64a661c24aceff88641dda3fa20895d59e3376be8d92275fd8a86e4ef9603ae7ad4b7ec5a979ec9e183a6bac79ba4f7944d63bda9bcdf1cf83f411828766c5ba28b587179d99022ae20771880406f8c40f53adaa28d4e65c2a305db0faa2fb32e89dfe6d9ed6ebabbd559d7346bfc8194fa73346b30aaa529b8516bae82cbbb227e9e7c50903c64f1c390b822ee9310c7e23b6fca4eba7322d0fd59926a15ea028cdb263f67ca4f9f584fd765428e3c9f0c71689c303ceb90e0d51be140d11297f156ae0d54f58aed6b0644cd3f0db7a15a6eac9ec31821b28a2ea9f674be26aa0bd6cb294252fb6cca830028b2ed2bda27473e65b1d9d352c517d0d29debcdb89d94f6ad583b96e5e18e298a3e38bfbc8d954bc3db2c2b6a5ccbcdf3541bc0fc5c5245295332bb745c206d3dcf5249414f23670818a3fe69e30d8d7949b5309c75d770729c85677b0c7b7cc9fbea7e886e29fa1a815d5172ec727981692b134", "1": "16013d5d43b2e0027463415ca8c40fdb784b053c1af9ece3c3abd61e04904552b75be53e9b85e0e8bb75e4dc775a5ff8243d312df3b5098fceb28c4d96b6b80cd5f68c3411c2167fc25685a3d404e2faf20b35e06eb8a0b3504545d463768f6f40cf24062d0469434ab17de8fda345dd6a614b578e222942ec476a719e02612f943170b0cd61f4c957639d9329c578bb415f42bd7e81ab51e54f33f90d8f649d10a48c67912c8adb6f6d804cebd70556c7c8b349b6aa6ac8af48deb06bc3208d7a8688b09c92ded39b9370c7bef55ffefb659adc7eb847b0b0802d4285f771f8547fd9fdba700304d9533a935688eca7410422a67718938a6e7abbdb4cccb528e47dd3d614d36acf230e4acb43408f04a97503d62e597d56ad542697d8156aa4974ed85e2f9a4a73f9ab8dc80cceeb2d7bf542ffd231316494101fc0fa0c44e79049af9cc2de0d9c8da0795b287d3f7a047775f840dd7acd07eac839ebf467c0026d91501a655f45cbeaf6c2cccf886518b00bc603b3d6e27739fc1ed25597f189d438d85bc035f28f5320bac6b1e5177736381febf07db7df76a06ab19ef53abfb29789af148425faf3b245c31dbe8aad9fdd2e62542b88180102bfb0e5bb474f59517f3c16936bbdef529570ce9c9b5a1068f7eff3c4ae586df88619d4554934d8c30eccde5245a9ecc6de44b2cb2694a86325cb239e016f0e3774d2cb8687681d7d2e39420d4a7806fe95a13ba711fec9b2841be5b2956386413dad1ddae37e6eba32288db1d407721b0292cfb2e8cb7412c5cde63ad678b11221342f73ed0ea0e31a58aa0e1f4147542a0289fa64cb9a81b4e5970f68da52b16b88159d8aae0e08e7efbe95522ece2e0c01926d45ef083d5854d63e96defb226a4120aa10035c8afbebad92cbbef2cee11fbc702388c9dfbe1b3c01c82b1fb960603ea3c915949ce25409c1527e267735865da1c599a7ed54f76f27332450dac108c187d61fa25fa1f8e572aa8b113474311f1406e7cafc4bd16cd72ae2d163cdd7952d131c1e1073c9bd69a3ce4618d2ae8347dfc38ba5f9cad41b98d431d9e1e52ee6100a8dabdaa1b5fd0754c977645ae431383e831a5c17bfabe7f193179adc2b099ded5df9a6d2dc4aec75dc77b867e0d0f6500e01eeed5160fc409fcc4edaa4fd3e324d85679055738bd68341018be0b46817a08ff5da8c0e819d72d5339079b359cd519c8a086ff826915096fcf2600c35966f0d667d857a99e9a0a682b101546f7db4471e4588364cd31497e22a6565973917756ea0564eecc664ecfc3aaa6b07d5efef11a5572629287f577862456dd4a124f02ed4b09fce79bc774ef08e0c003d462e4dd89753ff130318c5f228f517fcaac96fe68ac4daf7be61ac0918ae78e3d851dd0d5187813fc71dc152d0f06817482847a724bdc7cde0216d4dd3d8ba", "8": "a35066fb323b096dff1a97cc0dbb8fccc3e11dbfc442c48cdf0bdf2044100eef2c11bd187d6bbd3ba34ba49b3118e6a54c219016a5e4aaacce45c18eed7ad5394ea92621eec44767d1e97db88ea19cac55c9242013cfc0b93316f64f28b48cd419ecea232d68c1ab7afc973cd67e547ea1e93fef27adfee2b56b4790e121d0de3eb6352ac4a68d80809a942ea9f8a17c7b562c871c0e3d1abbc07f3921e97cade8836a2d7e385fc7d6ce20656eeae757244bf7c8dc3a45dbf0351080a48797c4389512d7a9c30f267f885739eb84131df5d8ffbfd619c1c5018ddcfdd389bc14def9f4721cadff0c7eea4c4eafb9ecdb626d3802280c3180966b3132ee41fe6e4d56648f17b313fc5f300aabc891906ba0f6624b632de89cd02bdf02dce606a2fa3e38b301f7950b2f2fc695023a24374be94a87009b8f5c9e8ce36e8acf898ee58509fad96158a47839acc1098690aedb8616d9a492f0fc4b0ab0114ab45fdddd7eda172be122a168650c70e1ff60cd764e587541eaef910a443ffcb3617661f5484a56af6afe60df97d11e701f341c2370d83c96805f26c4630be02d43df7dd8d81ed070da6bcf61e9b8fe688978b2e8c434d372c1e30f83185fdb73af514cf9a3e7ccc84e897053908178afd49efef90d1a1dd39340d4d875e18d981ba73a3952c7f4d6cd88fd8e3336b474c7cb60033fdfa947e2bcbad378fa32fe9c113df00ab1f9eb6e17c9873e283c76c215c9cd0ef82c94a2d6c0c5fe148653eb5d41f0877c4734a67fc5032af98a62fd324fff2a789678e82586430cdfa22d8b1cdd34b4b8068c8ffab06def91114222111a2b042b3a0efde571c8f921e92654f1b158458d0f07a957476d63a4063b1a0b5830cf702c0be710a8bb76f2f13af71e8e958bcdb1cd893a83ae92eebe5281691eee20360c8ceaf4fe073af4ca77e6a345c496785271248f6326433121bf0e8c5a965e26792ec7d18116f7a7e82ac0c44c3133908f55e5e863ba384fb6bfd90968af842871b181c04729bbbc5f5f2b6ad9f63d6dacf34f342eb0b8c39f075d959603d76b53f4c2270598c2216917f9de9f0b1c2f37ae418e9d9c226e9cd6af43f22993dc2c925f27c4ff2fb53d8a844f3f896eb54375215e4f22a7d185922df09bb4acbd42951dcefa6eb765091fd922aca0fc0580d0a4d25e1bc710ae7b65e12f52703ddd32a006b104a9c9b71486c1d4575bfdc4248fa307160d9a47f9a61e771a88e9b067a2c0deb638399adbe1e3371214ccd70df1a6c1ab5ae8109bff4de68fb15be65d4a3b59071919fc7680cf42c840d083daf73db6ec49481daba1b9ba25ea7ea64cfd2c914a0614b2aee5d307a2cc6bc20b5cab4f59f99c20caeef6775ed62c553de58b74c81a7f0ec57b1e6e0496f62c796fccd38155a71afd2083bae5cf5bccb035af1e3cd88630dfb5e666", "4": "533b36daf9c3de60e57f92e18b1e4b27b5d539cc557bdaad0427f6de5d69a02a6a86cb6eafd0cb04b0c867a69f98980df1b67376c581d273edb98500136cf9b426eef71778c77ac8ab4871a98e657cb33e5e5478df4f0c29aae7c5966f0c4ad28122648dbfde945dd57890ca608e2035a857ff78f03d3fb42338b453aef70fd31faed65b27371c38adb1db048a331b4d8d473d185d351734ed83f21293a0d59808195b720c3bcd49eb85b91ccff88d221992169e794ca3a7333e287fea400193ebf607aeee188ad65aad96b6dbf2b4d1a39a85c716fdcbf5d04f6252e7a10ba62c1a8090efca4088028e9320f5d84fa48c6db5f4ce87dc26516493aa92415f7f1d584ec8432582c19ba91cf93083ed28914181729edd03bcc4f67222a71f69e021a891a40b92b1312d8bd7ab4503bdc4c0beaf896e367af9dc10f7da5522c793ab7f294baf2630180258bc1c095ac91903fa5449810b62e62d224da4da66d55bc9931c8436f0652e3cdbb8f1da9a2d0d8c1350b56dfe404f17205b3b916cc0a6bdf9c6529903fdcdae6c99a04ef47e2198604f09321c6d8ae1543fcf65afb4b5e9c1e10b21e3f984e274b16a37609d17fa9fd16d7df15445bc632d00d82b2e15d4175150d7c43cd5aae6942f063e03ce6a5311ffcfbea4d68c29bf073338fd3e3c68c850f47f53c4acedc424e26c7f544a9ba932302199de09cffbc205f651cebc2cc7765625937657aed36a7ccd09e52bab886ce0870f5a129f4e1649191e40532f8a6001dfb4b332218b0d5f0cd1f051230812e942dc0609aba022a5607b08eee17c29827442fcbd3ab75fb4c631dd9de94e744c6aa13dd5ee57d0d5c3af429acf87fa6c213842fff1504ef1e1e0909451542b16ac867f834d470b3eda5ff854d511a43331e03ac8107c002077fee46fce742380db2c336a3bd94daf17f7746aad60d63e1835764639e790e21a697a9b957b087f8f8be1f010152d6aa8306d324ee1effeb259038af635f2cc8b93236c427c6dfe1ec8052c087cb4790ddf323ef67a8e4011da2ef5a6dc9106a76f063958d3383a5cc0bac0491a7c03779dd39f25680ce472d78ab119274e5f05ea6d6f371d38e361348dcb89c5e3f04e0585db7b61c71f7b9412724974b2b4f6d53d3c8151ebccfc09c2d69748ca941808f6b340f2a877f12ca3950b221127cbadc6fcf09f2de952199a04fcbf10b995124fd3c454dc1ea48e85cc4fb5cd01e06df6bc5fa8096a81bde5b7332915eb5cde2578bfb5a8121c532b9a3aa65b51da38e489dbd2b832176a934a4fe6e5a0cdfc2c5527b615ce4533bbc54deab7e0cb3cda76ba4117ebc37801d5430f1200041383d9e55f89fa3a3611633d42284c9bad304e91eb37c3f3923d515eb6d3cc0d599c8aaeba140620ed547dea25310197f5f930cd19cf104f3b279df717d0483aa8fc"}

여기서 사용된 키들의 번호는 다음과 같습니다.

3 15 13 12 10 11 2 7 9 6 1 8 4

위에서 볼수 있듯 같은 키를 사용하여도 다른 암호화 결과가 출력됩니다.

정리

본프로그램을 사용하면 여러개의 키파일을 사용함으로써 하나의 키파일을 알아도 해당 번호의 문자열만 알수있습니다.

또한 같은 내용의 문자열을 암호화해도 각기 다른 키의 번호를 사용함으로써 완전히 다른 암호화된 내용이 출력됩니다.

이처럼 보안이 중요한 곳에 사용된다면 큰 이점이 기대됩니다. 또한, RSA가 아닌 ECC같은 키길이가 짧은 암호화를 사용한다면 적은 시간내 많은 문자열을 복호화 암호화를 할수 있습니다.

라이브러리

cryptography

pycryptodome

기여

소스 수정사항이 있다면 Pull requests 로 열어주세요.

라이센스

이 프로젝트는 MIT라이선스가 적용됩니다.

About

Encrypt each letter of the entered plaintext with RSA8192 key.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages