Криптографиялық хэш функциясы
LSH Бұл криптографиялық хэш функциясы 2014 жылы жобаланған Оңтүстік Корея сияқты жалпы мақсаттағы бағдарламалық жасақтаманың тұтастығын қамтамасыз ету ДК және ақылды құрылғылар.[1] LSH - бұл Кореяның криптографиялық модулін тексеру бағдарламасы (KCMVP) мақұлдаған криптографиялық алгоритмдердің бірі және бұл Оңтүстік Кореяның ұлттық стандарты (KS X 3262).
Техникалық сипаттама
LSH хэш-функциясының жалпы құрылымы келесі суретте көрсетілген.
LSH жалпы құрылымы
LSH хэш-функциясы бір нольді толтырумен кең Merkle-Damgård құрылымына ие. LSH хабарламаларын хэштеу процесі келесі үш кезеңнен тұрады.
- Инициализация:
- Берілген биттік жол туралы хабарламаның бір нөлге толтырылуы.
- Жинақталған биттік жол хабарынан 32 сөзден тұратын массив хабарламасына айналу.
- Инициализация векторымен тізбектелген айнымалыны инициализациялау.
- Қысу:
- Тізбектелген айнымалыларды хабарлама блоктарымен қысу функциясын қайталау арқылы жаңарту.
- Қорытындылау:
- Ан буыны
соңғы тізбекті айнымалыдан алынған хэш мәні.
LSH хэш-функциясының сипаттамалары келесідей.
Хэш функциясы LSH сипаттамаларыАлгоритм | Битпен қорыту мөлшері ( ) | Қадам функцияларының саны ( ) | Биттердегі тізбектің айнымалы мөлшері | Хабарлама блогының өлшемі биттермен | Сөз өлшемі битпен ( ) |
---|
LSH-256-224 | 224 | 26 | 512 | 1024 | 32 |
LSH-256-256 | 256 |
LSH-512-224 | 224 | 28 | 1024 | 2048 | 64 |
LSH-512-256 | 256 |
LSH-512-384 | 384 |
LSH-512-512 | 512 |
Инициализация
Келіңіздер
берілген биттік хабарлама болуы керек
бір нөлдермен толтырылады, яғни ‘1’ биті соңына қосылады
және ‘0’ биті толтырылған хабардың сәл ұзындығына дейін қосылады
, қайда
және
кем емес бүтін сан болып табылады
.
Келіңіздер
бір нөлге толы болуы керек
-бит жолының
.Сосын
ретінде қарастырылады
-байттық массив
, қайда
барлығына
мәтіндері
-байттық массив
түрлендіреді
- массив
келесідей.
![{ displaystyle (0 leq s leq (32t-1))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9f6c1ecab1dc58e9012728a33b88a423a1401ecb)
Массив сөзінен
, біз анықтаймыз
Массивтің 32 сөзден тұратын блоктары
келесідей.
![{ displaystyle (0 leq i leq (t-1))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e7bf7902bfab248dacba4315faaf54eeb501a470)
16 сөзден тұратын жиым тізбегінің айнымалысы
инициализация векторына инициализацияланған
.
![{ displaystyle (0 leq l leq 15)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/de570031439e37b761bdde972f3af56e49260263)
Инициалдау векторы
Келесі кестелерде барлық мәндер он алтылық түрінде көрсетілген.
LSH-256-224 инициализация векторы![{ displaystyle { textsf {IV}} [0]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e999e9f3741fbdf52af9cc4a4d9be0b6ccf6945f) | ![{ displaystyle { textsf {IV}} [1]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/19ef984c6c0763a1541d89acf2fa95341b570fa7) | ![{ displaystyle { textsf {IV}} [2]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/03c25b70ee80852f78587b5154f3ddad3a9e007a) | ![{ displaystyle { textsf {IV}} [3]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5d723c75229cca886dc8219503ca59f941b57e34) | ![{ displaystyle { textsf {IV}} [4]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c027deaf01f0c4b67a9749d6ff1def884912c858) | ![{ displaystyle { textsf {IV}} [5]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0cd23ddaf854ce9b457cd9c5d0da3efa6aae8274) | ![{ displaystyle { textsf {IV}} [6]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4ed177acf98ade6005bbc3598aa9ad09a21f3be6) | ![{ displaystyle { textsf {IV}} [7]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6bd8b8e7594b13b83421f693bc44bc9a4ef862bf) |
---|
068608D3 | 62D8F7A7 | D76652AB | 4C600A43 | BDC40AA8 | 1ECA0B68 | DA1A89BE | 3147D354 |
![{ displaystyle { textsf {IV}} [8]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f291543f56da1d3c98a207c145214248d5417d0c) | ![{ displaystyle { textsf {IV}} [9]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ddebb4dacc2f97b7603f883187c8d2bcbc43c860) | ![{ displaystyle { textsf {IV}} [10]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bb7dbd6006744b44ffd77084d528da5588bdda63) | ![{ displaystyle { textsf {IV}} [11]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ae7f16181346c9d69ee705ea0858c9102ab54e2d) | ![{ displaystyle { textsf {IV}} [12]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2a2bd2ddfbeace72719eed88c2eea81ff3904c80) | ![{ displaystyle { textsf {IV}} [13]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2361328bc13a1f6fe820a015a2ee0b2220d28d57) | ![{ displaystyle { textsf {IV}} [14]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4897271813f7c994d55ddd614305fc32cac0cbee) | ![{ displaystyle { textsf {IV}} [15]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/99235ba6fce415b369c060c2381097b6978b52a5) |
---|
707EB4F9 | F65B3862 | 6B0B2ABE | 56B8EC0A | CF237286 | EE0D1727 | 33636595 | 8BB8D05F |
LSH-256-256 инициализация векторы![{ displaystyle { textsf {IV}} [0]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e999e9f3741fbdf52af9cc4a4d9be0b6ccf6945f) | ![{ displaystyle { textsf {IV}} [1]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/19ef984c6c0763a1541d89acf2fa95341b570fa7) | ![{ displaystyle { textsf {IV}} [2]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/03c25b70ee80852f78587b5154f3ddad3a9e007a) | ![{ displaystyle { textsf {IV}} [3]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5d723c75229cca886dc8219503ca59f941b57e34) | ![{ displaystyle { textsf {IV}} [4]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c027deaf01f0c4b67a9749d6ff1def884912c858) | ![{ displaystyle { textsf {IV}} [5]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0cd23ddaf854ce9b457cd9c5d0da3efa6aae8274) | ![{ displaystyle { textsf {IV}} [6]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4ed177acf98ade6005bbc3598aa9ad09a21f3be6) | ![{ displaystyle { textsf {IV}} [7]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6bd8b8e7594b13b83421f693bc44bc9a4ef862bf) |
---|
46A10F1F | FDDCE486 | B41443A8 | 198E6B9D | 3304388D | B0F5A3C7 | B36061C4 | 7ADBD553 |
![{ displaystyle { textsf {IV}} [8]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f291543f56da1d3c98a207c145214248d5417d0c) | ![{ displaystyle { textsf {IV}} [9]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ddebb4dacc2f97b7603f883187c8d2bcbc43c860) | ![{ displaystyle { textsf {IV}} [10]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bb7dbd6006744b44ffd77084d528da5588bdda63) | ![{ displaystyle { textsf {IV}} [11]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ae7f16181346c9d69ee705ea0858c9102ab54e2d) | ![{ displaystyle { textsf {IV}} [12]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2a2bd2ddfbeace72719eed88c2eea81ff3904c80) | ![{ displaystyle { textsf {IV}} [13]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2361328bc13a1f6fe820a015a2ee0b2220d28d57) | ![{ displaystyle { textsf {IV}} [14]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4897271813f7c994d55ddd614305fc32cac0cbee) | ![{ displaystyle { textsf {IV}} [15]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/99235ba6fce415b369c060c2381097b6978b52a5) |
---|
105D5378 | 2F74DE54 | 5C2F2D95 | F2553FBE | 8051357А | 138668C8 | 47AA4484 | E01AFB41 |
LSH-512-224 инициализация векторы![{ displaystyle { textsf {IV}} [0]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e999e9f3741fbdf52af9cc4a4d9be0b6ccf6945f) | ![{ displaystyle { textsf {IV}} [1]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/19ef984c6c0763a1541d89acf2fa95341b570fa7) | ![{ displaystyle { textsf {IV}} [2]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/03c25b70ee80852f78587b5154f3ddad3a9e007a) | ![{ displaystyle { textsf {IV}} [3]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5d723c75229cca886dc8219503ca59f941b57e34) |
---|
0C401E9FE8813A55 | 4A5F446268FD3D35 | FF13E452334F612A | F8227661037E354A |
![{ displaystyle { textsf {IV}} [4]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c027deaf01f0c4b67a9749d6ff1def884912c858) | ![{ displaystyle { textsf {IV}} [5]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0cd23ddaf854ce9b457cd9c5d0da3efa6aae8274) | ![{ displaystyle { textsf {IV}} [6]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4ed177acf98ade6005bbc3598aa9ad09a21f3be6) | ![{ displaystyle { textsf {IV}} [7]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6bd8b8e7594b13b83421f693bc44bc9a4ef862bf) |
---|
A5F223723C9CA29D | 95D965A11AED3979 | 01E23835B9AB02CC | 52D49CBAD5B30616 |
![{ displaystyle { textsf {IV}} [8]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f291543f56da1d3c98a207c145214248d5417d0c) | ![{ displaystyle { textsf {IV}} [9]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ddebb4dacc2f97b7603f883187c8d2bcbc43c860) | ![{ displaystyle { textsf {IV}} [10]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bb7dbd6006744b44ffd77084d528da5588bdda63) | ![{ displaystyle { textsf {IV}} [11]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ae7f16181346c9d69ee705ea0858c9102ab54e2d) |
---|
9E5C2027773F4ED3 | 66A5C8801925B701 | 22BBC85B4C6779D9 | C13171A42C559C23 |
![{ displaystyle { textsf {IV}} [12]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2a2bd2ddfbeace72719eed88c2eea81ff3904c80) | ![{ displaystyle { textsf {IV}} [13]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2361328bc13a1f6fe820a015a2ee0b2220d28d57) | ![{ displaystyle { textsf {IV}} [14]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4897271813f7c994d55ddd614305fc32cac0cbee) | ![{ displaystyle { textsf {IV}} [15]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/99235ba6fce415b369c060c2381097b6978b52a5) |
---|
31E2B67D25BE3813 | D522C4DEED8E4D83 | A79F5509B43FBAFE | E00D2CD88B4B6C6A |
LSH-512-256 инициализация векторы![{ displaystyle { textsf {IV}} [0]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e999e9f3741fbdf52af9cc4a4d9be0b6ccf6945f) | ![{ displaystyle { textsf {IV}} [1]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/19ef984c6c0763a1541d89acf2fa95341b570fa7) | ![{ displaystyle { textsf {IV}} [2]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/03c25b70ee80852f78587b5154f3ddad3a9e007a) | ![{ displaystyle { textsf {IV}} [3]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5d723c75229cca886dc8219503ca59f941b57e34) |
---|
6DC57C33DF989423 | D8EA7F6E8342C199 | 76DF8356F8603AC4 | 40F1B44DE838223A |
![{ displaystyle { textsf {IV}} [4]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c027deaf01f0c4b67a9749d6ff1def884912c858) | ![{ displaystyle { textsf {IV}} [5]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0cd23ddaf854ce9b457cd9c5d0da3efa6aae8274) | ![{ displaystyle { textsf {IV}} [6]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4ed177acf98ade6005bbc3598aa9ad09a21f3be6) | ![{ displaystyle { textsf {IV}} [7]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6bd8b8e7594b13b83421f693bc44bc9a4ef862bf) |
---|
39FFE7CFC31484CD | 39C4326CC5281548 | 8A2FF85A346045D8 | FF202AA46DBDD61E |
![{ displaystyle { textsf {IV}} [8]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f291543f56da1d3c98a207c145214248d5417d0c) | ![{ displaystyle { textsf {IV}} [9]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ddebb4dacc2f97b7603f883187c8d2bcbc43c860) | ![{ displaystyle { textsf {IV}} [10]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bb7dbd6006744b44ffd77084d528da5588bdda63) | ![{ displaystyle { textsf {IV}} [11]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ae7f16181346c9d69ee705ea0858c9102ab54e2d) |
---|
CF785B3CD5FCDB8B | 1F0323B64A8150BF | FF75D972F29EA355 | 2E567F30BF1CA9E1 |
![{ displaystyle { textsf {IV}} [12]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2a2bd2ddfbeace72719eed88c2eea81ff3904c80) | ![{ displaystyle { textsf {IV}} [13]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2361328bc13a1f6fe820a015a2ee0b2220d28d57) | ![{ displaystyle { textsf {IV}} [14]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4897271813f7c994d55ddd614305fc32cac0cbee) | ![{ displaystyle { textsf {IV}} [15]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/99235ba6fce415b369c060c2381097b6978b52a5) |
---|
B596875BF8FF6DBA | FCCA39B089EF4615 | ECFF4017D020B4B6 | 7E77384C772ED802 |
LSH-512-384 инициализация векторы![{ displaystyle { textsf {IV}} [0]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e999e9f3741fbdf52af9cc4a4d9be0b6ccf6945f) | ![{ displaystyle { textsf {IV}} [1]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/19ef984c6c0763a1541d89acf2fa95341b570fa7) | ![{ displaystyle { textsf {IV}} [2]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/03c25b70ee80852f78587b5154f3ddad3a9e007a) | ![{ displaystyle { textsf {IV}} [3]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5d723c75229cca886dc8219503ca59f941b57e34) |
---|
53156A66292808F6 | B2C4F362B204C2BC | B84B7213BFA05C4E | 976CEB7C1B299F73 |
![{ displaystyle { textsf {IV}} [4]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c027deaf01f0c4b67a9749d6ff1def884912c858) | ![{ displaystyle { textsf {IV}} [5]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0cd23ddaf854ce9b457cd9c5d0da3efa6aae8274) | ![{ displaystyle { textsf {IV}} [6]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4ed177acf98ade6005bbc3598aa9ad09a21f3be6) | ![{ displaystyle { textsf {IV}} [7]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6bd8b8e7594b13b83421f693bc44bc9a4ef862bf) |
---|
DF0CC63C0570AE97 | DA4441BAA486CE3F | 6559F5D9B5F2ACC2 | 22DACF19B4B52A16 |
![{ displaystyle { textsf {IV}} [8]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f291543f56da1d3c98a207c145214248d5417d0c) | ![{ displaystyle { textsf {IV}} [9]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ddebb4dacc2f97b7603f883187c8d2bcbc43c860) | ![{ displaystyle { textsf {IV}} [10]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bb7dbd6006744b44ffd77084d528da5588bdda63) | ![{ displaystyle { textsf {IV}} [11]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ae7f16181346c9d69ee705ea0858c9102ab54e2d) |
---|
BBCDACEFDE80953A | C9891A2879725B3E | 7C9FE6330237E440 | A30BA550553F7431 |
![{ displaystyle { textsf {IV}} [12]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2a2bd2ddfbeace72719eed88c2eea81ff3904c80) | ![{ displaystyle { textsf {IV}} [13]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2361328bc13a1f6fe820a015a2ee0b2220d28d57) | ![{ displaystyle { textsf {IV}} [14]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4897271813f7c994d55ddd614305fc32cac0cbee) | ![{ displaystyle { textsf {IV}} [15]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/99235ba6fce415b369c060c2381097b6978b52a5) |
---|
BB08043FB34E3E30 | A0DEC48D54618EAD | 150317267464BC57 | 32D1501FDE63DC93 |
LSH-512-512 инициализация векторы![{ displaystyle { textsf {IV}} [0]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e999e9f3741fbdf52af9cc4a4d9be0b6ccf6945f) | ![{ displaystyle { textsf {IV}} [1]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/19ef984c6c0763a1541d89acf2fa95341b570fa7) | ![{ displaystyle { textsf {IV}} [2]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/03c25b70ee80852f78587b5154f3ddad3a9e007a) | ![{ displaystyle { textsf {IV}} [3]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5d723c75229cca886dc8219503ca59f941b57e34) |
---|
ADD50F3C7F07094E | E3F3CEE8F9418A4F | B527ECDE5B3D0AE9 | 2EF6DEC68076F501 |
![{ displaystyle { textsf {IV}} [4]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c027deaf01f0c4b67a9749d6ff1def884912c858) | ![{ displaystyle { textsf {IV}} [5]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0cd23ddaf854ce9b457cd9c5d0da3efa6aae8274) | ![{ displaystyle { textsf {IV}} [6]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4ed177acf98ade6005bbc3598aa9ad09a21f3be6) | ![{ displaystyle { textsf {IV}} [7]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6bd8b8e7594b13b83421f693bc44bc9a4ef862bf) |
---|
216 | FBB9EAE4BBA48CC7 | 650A526174725FEA | 1F9A61A73F8D8085 |
![{ displaystyle { textsf {IV}} [8]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f291543f56da1d3c98a207c145214248d5417d0c) | ![{ displaystyle { textsf {IV}} [9]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ddebb4dacc2f97b7603f883187c8d2bcbc43c860) | ![{ displaystyle { textsf {IV}} [10]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bb7dbd6006744b44ffd77084d528da5588bdda63) | ![{ displaystyle { textsf {IV}} [11]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ae7f16181346c9d69ee705ea0858c9102ab54e2d) |
---|
B6607378173B539B | 1BC99853B0C0B9ED | DF727FC19B182D47 | DBEF360CF893A457 |
![{ displaystyle { textsf {IV}} [12]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2a2bd2ddfbeace72719eed88c2eea81ff3904c80) | ![{ displaystyle { textsf {IV}} [13]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2361328bc13a1f6fe820a015a2ee0b2220d28d57) | ![{ displaystyle { textsf {IV}} [14]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4897271813f7c994d55ddd614305fc32cac0cbee) | ![{ displaystyle { textsf {IV}} [15]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/99235ba6fce415b369c060c2381097b6978b52a5) |
---|
4981F5E570147E80 | D00C4490CA7D3E30 | 5D73940C0E4AE1EC | 894085E2EDB2D819 |
Қысу
Бұл кезеңде
Массивтің 32 сөзден тұратын блоктары
, олар хабарламадан жасалады
инициализациялау сатысында қысу функциясының итерациясымен қысылады
екі кіріс бар; The
- 16-сөзден тұратын тізбекті айнымалы
және
- 32-сөзден тұратын хабарламалар блогы
.Және ол қайтарады
- 16-сөзден тұратын тізбекті айнымалы
.Міне, содан кейін,
барлығының жиынтығын білдіреді
-сөз массивтері
.
Сығымдау функциясында келесі төрт функция қолданылады:
- Хабарламаны кеңейту функциясы
![{ displaystyle { textrm {MsgExp}}: { mathcal {W}} ^ {32} rightarrow { mathcal {W}} ^ {16 (Ns + 1)}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9c7b39d3bad978040a30bcb6bb3cd46a71af860c)
- Хабарлама қосу функциясы
![{ displaystyle { textrm {MsgAdd}}: { mathcal {W}} ^ {16} times { mathcal {W}} ^ {16} rightarrow { mathcal {W}} ^ {16}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fd1ab8f87cbbb6399cd77541ab931a490f428bfe)
- Араластыру функциясы
![{ displaystyle { textrm {Mix}} _ {j}: { mathcal {W}} ^ {16} rightarrow { mathcal {W}} ^ {16}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/be57ff79663cd0e9591d668cd745afa1a472e503)
- Сөздерді ауыстыру функциясы
![{ displaystyle { textrm {WordPerm}}: { mathcal {W}} ^ {16} rightarrow { mathcal {W}} ^ {16}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e15fc8d0f4e85987cae44d5daabce2c4cf704f12)
Қысу функциясының жалпы құрылымы келесі суретте көрсетілген.
LSH қысу функциясы
Қысу функциясында хабарламаны кеңейту функциясы
генерациялайды
16 сөзден тұратын жиынтық қосымшалар
берілгеннен
.Қалайық
орнатылған 16 сөзден тұратын уақытша жиым болыңыз
- тізбекті айнымалы
мәтіндері
- қадам функциясы
екі кіріс бар
және
жаңартулар
, яғни,
.Қадамның барлық функциялары ретімен орындалады
.Сосын тағы бір
жұмыс
жалғастырылды, және
- тізбекті айнымалы
орнатылған
.Қысу функциясының процесі егжей-тегжейлі.
Мұнда
- қадам функциясы
келесідей.
![{ displaystyle (0 leq j leq (N_ {s} -1))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f0a9950316691eb2e2105ad91443b90f8347ecc0)
Келесі суретте
- қадам функциясы
қысу функциясының.
The
![j](https://wikimedia.org/api/rest_v1/media/math/render/svg/2f461e54f5c093e92a55547b9764291390f0b5d0)
- қадам функциясы
![{ displaystyle { textrm {Step}} _ {j}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/491f5c9437d656a64f80d6b31749fc07319a07e2)
Хабарламаны кеңейту функциясы MsgExp
Келіңіздер
болуы
- 32-сөзден тұратын жиымдық хабарлама блогы. Хабарды кеңейту функциясы
генерациялайды
16 сөзден тұратын жиынтық қосымшалар
хабарламалар блогынан
.Алғашқы екі қосымша хабарлама
және
келесідей анықталады.
![{ displaystyle { textsf {M}} _ {0} ^ {(i)} leftarrow (M ^ {(i)} [0], M ^ {(i)} [1], ldots, M ^) {(i)} [15])}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8bc56dd40f2cf9561c310e1cb9266c02c0d6a5ab)
![{ displaystyle { textsf {M}} _ {1} ^ {(i)} сол жақ (M ^ {(i)} [16], M ^ {(i)} [17], ldots, M ^ {(i)} [31])}](https://wikimedia.org/api/rest_v1/media/math/render/svg/79c190f11728ea49c9f324944be1d4c878c53227)
Келесі ішкі хабарламалар
келесі түрде жасалады.
![{ displaystyle (0 leq l leq 15, 2 leq j leq N_ {s})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d77a4e5958524c646c8075547ddf0b9de4bb6c57)
Мұнда
ауыстыру
келесідей анықталды.
Орын ауыстыру ![{displaystyle au :mathbb {Z} _{16}
ightarrow mathbb {Z} _{16}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e2bcd33f500551a64d4291bd92f650f41148d343)
![л](https://wikimedia.org/api/rest_v1/media/math/render/svg/829091f745070b9eb97a80244129025440a1cfac) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|
![{displaystyle au (l)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b496eeb54b9fad596044dbdfa0bc84cbe183f66e) | 3 | 2 | 0 | 1 | 7 | 4 | 5 | 6 | 11 | 10 | 8 | 9 | 15 | 12 | 13 | 14 |
---|
Хабарлама қосу функциясы MsgAdd
16 сөзден тұратын екі массив үшін
және
, хабарлама қосу функциясы
келесідей анықталады.
![{displaystyle { extrm {MsgAdd}}({ extsf {X}},{ extsf {Y}}):=(X[0]oplus Y[0],ldots ,X[15]oplus Y[15])}](https://wikimedia.org/api/rest_v1/media/math/render/svg/116a4f232b0e499dec64cad7c873fd5feb163043)
Mix функциясы Mix
The
- аралас функция
16 сөзден тұратын жиымды жаңартады
әр екі сөзден тұратын жұпты араластыру арқылы;
және
үшін
.Үшін
, микс функциясы
келесі жолмен жүреді.
![{displaystyle (0leq l<8)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/61397b79b51e75a14f41819b0c2121471ed70127)
Мұнда
екі сөзден тұратын микс функциясы
және
екі сөзден тұратын аралас функция
келесідей анықталады.
Екі сөзден тұратын микс функциясы
келесі суретте көрсетілген.
Екі сөзден тұратын аралас функция
![{displaystyle { extrm {Mix}}_{j,l}(X,Y)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/36541381f94988dc8a138cf8d9ca3b63af85bbc4)
Биттің айналу мөлшері
,
,
жылы қолданылған
келесі кестеде көрсетілген.
Бит айналу мөлшері
,
, және ![gamma _{l}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f3180ecb967365a391b7d40e95bfbab857831330)
![w](https://wikimedia.org/api/rest_v1/media/math/render/svg/88b1e0c8e1be5ebe69d18a8010676fa42d7961e6) | ![j](https://wikimedia.org/api/rest_v1/media/math/render/svg/2f461e54f5c093e92a55547b9764291390f0b5d0) | ![{ displaystyle alpha _ {j}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/293a364991ab1ee55c25b0f60fd9e52af7b7dbde) | ![бета _ {j}](https://wikimedia.org/api/rest_v1/media/math/render/svg/83edf0558c67ad56ca5c05096b550bd733d62c4b) | ![{ displaystyle gamma _ {0}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/407f2fbc64e21bb432f397fdb816de0f5083d900) | ![gamma_1](https://wikimedia.org/api/rest_v1/media/math/render/svg/6c2d6da217f4d6e937887bad1c90b371314830f7) | ![gamma_2](https://wikimedia.org/api/rest_v1/media/math/render/svg/482832093b568cdc09c3aeaa2585c5fc49100b63) | ![gamma_3](https://wikimedia.org/api/rest_v1/media/math/render/svg/c2fce3af8715829dd2d06579c84566073155f1bb) | ![{displaystyle gamma _{4}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cfa6f3c2a788000ec5d7a46990e1b1116a33eaa1) | ![{ displaystyle gamma _ {5}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b94fc10f503ccc16a12b94646d8fff849fab673d) | ![{displaystyle gamma _{6}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/814420e434c530fd0912fd192ed836848dd6beda) | ![{displaystyle gamma _{7}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a3951d7f57b4597f622611908722c51d46cf4de8) |
---|
32 | тіпті | 29 | 1 | 0 | 8 | 16 | 24 | 24 | 16 | 8 | 0 |
тақ | 5 | 17 |
64 | тіпті | 23 | 59 | 0 | 16 | 32 | 48 | 8 | 24 | 40 | 56 |
тақ | 7 | 3 |
The
- 8-сөзден тұратын жиым тұрақты
жылы қолданылған
үшін
Бастапқы 8 сөзден тұратын жиым тұрақты
келесі кестеде анықталған
,
- тұрақты
арқылы жасалады
үшін
.
Бастапқы 8 сөзден тұратын массив тұрақты ![{displaystyle { extsf {SC}}_{0}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8f44b45fecf90e0cb13cc24d377be25f8d028906)
| ![{displaystyle w=32}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8c609e2684eb709b260154fb505321e417037009) | ![{displaystyle w=64}](https://wikimedia.org/api/rest_v1/media/math/render/svg/42c11543411bfa81c87c063f932f21e5341b0182) |
---|
![{displaystyle SC_{0}[0]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/68d1bf7cd02ea4ce227fad05bee1ef10edf21c0d) | 917caf90 | 97884283c938982a |
---|
![{displaystyle SC_{0}[1]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/53155ed01cf05325fc1859cf17d1cedf334cf95c) | 6c1b10a2 | ba1fca93533e2355 |
---|
![{displaystyle SC_{0}[2]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5bab5db617e31e28457e43edfcbb76dbcf623df3) | 6f352943 | c519a2e87aeb1c03 |
---|
![{displaystyle SC_{0}[3]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/73cd303774e917e32fb6b20b1282a69c69ad47da) | cf778243 | 9a0fc95462af17b1 |
---|
![{displaystyle SC_{0}[4]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6518b1bf1a8a2d3539ad10dcde5ad1762d1c8d30) | 2ceb7472 | fc3dda8ab019a82b |
---|
![{displaystyle SC_{0}[5]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3f29498127cd8b547101780ac7d6faebc5e40a86) | 29e96ff2 | 02825d079a895407 |
---|
![{displaystyle SC_{0}[6]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/63b1c7d4c29c8ce552a4c9c8c051ff647c86f425) | 8a9ba428 | 79f2d0a7ee06a6f7 |
---|
![{displaystyle SC_{0}[7]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d8390e42cb325cfd246dc5fbbad160fcd6503e1d) | 2eeb2642 | d76d15eed9fdf5fe |
---|
Word-Permutation функциясы WordPerm
Келіңіздер
16 сөзден тұратын жиым. сөзді ауыстыру функциясы
келесідей анықталады.
![{displaystyle { extrm {WordPerm}}({ extsf {X}})=(X[sigma (0)],ldots ,X[sigma (15)])}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b48fa7bcc62ec4f57cf7201e133f581631471af4)
Мұнда
ауыстыру
келесі кестемен анықталған.
Орын ауыстыру ![{displaystyle sigma :mathbb {Z} _{16}
ightarrow mathbb {Z} _{16}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7cdc00041f42818f0511b32d9535265ac1e350aa)
![л](https://wikimedia.org/api/rest_v1/media/math/render/svg/829091f745070b9eb97a80244129025440a1cfac) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|
![{displaystyle sigma (l)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3ab3fa2988cf9b0e33518bb90df4b6c201aac8e1) | 6 | 4 | 5 | 7 | 12 | 15 | 14 | 13 | 2 | 0 | 1 | 3 | 8 | 11 | 10 | 9 |
---|
Қорытындылау
Аяқтау функциясы
қайтарады
- биттік хэш мәні
соңғы тізбекті айнымалыдан
.Қашан
- бұл 8 сөзден тұратын айнымалы және
Бұл
-байттық айнымалы, аяқтау функциясы
келесі процедураны орындайды.
![{displaystyle (0leq lleq 7)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/dbcb75c7dea573c36ca5eabf6dd8415aac556fb0)
![{displaystyle (0leq sleq (w-1))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1348561f57851ddbac7dd6b725983b2a10feee4d)
![{displaystyle hleftarrow (h_{b}[0]|ldots |h_{b}[w-1])_{[0:n-1]}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/79cb13674ed90511ce660a290d19af365883be48)
Мұнда,
білдіреді
, сөздің қосалқы бит жолы
үшін
.Және
білдіреді
, а-ның бит-бит жолы
-бит жол
үшін
.
Қауіпсіздік
LSH осы уақытқа дейін хэш-функцияларға белгілі шабуылдардан қауіпсіз және соқтығысуға төзімді
және алдын-ала қарауға төзімді және екінші топқа қарсы
идеалды шифр моделінде, қайда
LSH құрылымына арналған бірқатар сұраныстар.[1]LSH-256 қадамдардың саны 13 немесе одан көп болған кезде барлық қолданыстағы хэш-шабуылдардан қауіпсіз, ал егер LSH-512 қадамдар саны 14 немесе одан көп болса, қауіпсіз болып табылады. Қауіпсіздік шегі ретінде жұмыс істейтін қадамдар 50% құрайды. сығымдау функциясы.[1]
Өнімділік
LSH әр түрлі бағдарламалық жасақтама платформаларында SHA-2/3-тен асып түседі.
LSH жылдамдығының 1МБ хэштеу жылдамдығы (цикл / байт)[1]Платформа | P1[a] | P2[b] | P3[c] | P4[d] | P5[e] | P6[f] | P7[g] | P8[h] |
---|
LSH-256-![n](https://wikimedia.org/api/rest_v1/media/math/render/svg/a601995d55609f2d9f5e233e36fbe9ea26011b3b) | 3.60 | 3.86 | 5.26 | 3.89 | 11.17 | 15.03 | 15.28 | 14.84 |
LSH-512-![n](https://wikimedia.org/api/rest_v1/media/math/render/svg/a601995d55609f2d9f5e233e36fbe9ea26011b3b) | 2.39 | 5.04 | 7.76 | 5.52 | 8.94 | 18.76 | 19.00 | 18.10 |
- ^ Intel Core i7-4770K @ 3.5GHz (Haswell), Ubuntu 12.04 64-биттік, “-m64 -mavx2 -O3” бар GCC 4.8.1
- ^ Intel Core i7-2600K @ 3.40GHz (Sandy Bridge), Ubuntu 12.04 64 биттік, GCC 4.8.1 “-m64 -msse4 -O3”
- ^ Intel Core 2 Quad Q9550 @ 2.83GHz (Yorkfield), Windows 7 32-биттік, Visual studio 2012
- ^ AMD FX-8350 @ 4GHz (Piledriver), Ubuntu 12.04 64 биттік, GCC 4.8.1 «-m64 -mxop -O3»
- ^ Samsung Exynos 5250 ARM Cortex-A15 @ 1,7 ГГц екі ядролы (Huins ACHRO 5250), Android 4.1.1
- ^ Qualcomm Snapdragon 800 Krait 400 @ 2.26GHz төрт ядролы (LG G2), Android 4.4.2
- ^ Qualcomm Snapdragon 800 Krait 400 @ 2.3GHz төрт ядролы (Samsung Galaxy S4), Android 4.2.2
- ^ Qualcomm Snapdragon 400 Krait 300 @ 1,7 ГГц екі ядролы (Samsung Galaxy S4 mini), Android 4.2.2
Келесі кесте Haswell негізіндегі платформадағы салыстыру болып табылады, LSH Intel Core i7-4770k @ 3,5 ГГц төрт ядролы платформасында, ал басқалары Intel Core i5-4570S @ 2,9 ГГц төрт ядролы платформасында өлшенеді.
LSH, SHA-2 және SHA-3 финалисттерінің Haswell CPU негізіндегі платформадағы жылдамдық эталоны (цикл / байт)[1]Алгоритм | Хабардың байт өлшемі |
---|
ұзақ | 4,096 | 1,536 | 576 | 64 | 8 |
---|
LSH-256-256 | 3.60 | 3.71 | 3.90 | 4.08 | 8.19 | 65.37 |
Скейн-512-256 | 5.01 | 5.58 | 5.86 | 6.49 | 13.12 | 104.50 |
Блейк-256 | 6.61 | 7.63 | 7.87 | 9.05 | 16.58 | 72.50 |
Gröstl-256 | 9.48 | 10.68 | 12.18 | 13.71 | 37.94 | 227.50 |
Кеччак-256 | 10.56 | 10.52 | 9.90 | 11.99 | 23.38 | 187.50 |
SHA-256 | 10.82 | 11.91 | 12.26 | 13.51 | 24.88 | 106.62 |
JH-256 | 14.70 | 15.50 | 15.94 | 17.06 | 31.94 | 257.00 |
LSH-512-512 | 2.39 | 2.54 | 2.79 | 3.31 | 10.81 | 85.62 |
Скейн-512-512 | 4.67 | 5.51 | 5.80 | 6.44 | 13.59 | 108.25 |
Блейк-512 | 4.96 | 6.17 | 6.82 | 7.38 | 14.81 | 116.50 |
SHA-512 | 7.65 | 8.24 | 8.69 | 9.03 | 17.22 | 138.25 |
Grøstl-512 | 12.78 | 15.44 | 17.30 | 17.99 | 51.72 | 417.38 |
JH-512 | 14.25 | 15.66 | 16.14 | 17.34 | 32.69 | 261.00 |
Кеччак-512 | 16.36 | 17.86 | 18.46 | 20.35 | 21.56 | 171.88 |
Келесі кесте Samsung Exynos 5250 ARM Cortex-A15 @ 1,7 ГГц екі ядролы платформасында өлшенеді.
Exynos 5250 ARM Cortex-A15 CPU (цикл / байт) негізінде платформадағы LSH, SHA-2 және SHA-3 финалистерінің жылдамдық көрсеткіші[1]Алгоритм | Хабардың өлшемі байтпен |
---|
ұзақ | 4,096 | 1,536 | 576 | 64 | 8 |
---|
LSH-256-256 | 11.17 | 11.53 | 12.16 | 12.63 | 22.42 | 192.68 |
Скейн-512-256 | 15.64 | 16.72 | 18.33 | 22.68 | 75.75 | 609.25 |
Блейк-256 | 17.94 | 19.11 | 20.88 | 25.44 | 83.94 | 542.38 |
SHA-256 | 19.91 | 21.14 | 23.03 | 28.13 | 90.89 | 578.50 |
JH-256 | 34.66 | 36.06 | 38.10 | 43.51 | 113.92 | 924.12 |
Кеччак-256 | 36.03 | 38.01 | 40.54 | 48.13 | 125.00 | 1000.62 |
Gröstl-256 | 40.70 | 42.76 | 46.03 | 54.94 | 167.52 | 1020.62 |
LSH-512-512 | 8.94 | 9.56 | 10.55 | 12.28 | 38.82 | 307.98 |
Блейк-512 | 13.46 | 14.82 | 16.88 | 20.98 | 77.53 | 623.62 |
Скейн-512-512 | 15.61 | 16.73 | 18.35 | 22.56 | 75.59 | 612.88 |
JH-512 | 34.88 | 36.26 | 38.36 | 44.01 | 116.41 | 939.38 |
SHA-512 | 44.13 | 46.41 | 49.97 | 54.55 | 135.59 | 1088.38 |
Кеччак-512 | 63.31 | 64.59 | 67.85 | 77.21 | 121.28 | 968.00 |
Grøstl-512 | 131.35 | 138.49 | 150.15 | 166.54 | 446.53 | 3518.00 |
Тест векторлары
Әрбір дайджест ұзындығы үшін LSH үшін тест-векторлар келесідей, барлық мәндер он алтылық түрінде көрсетілген.
LSH-256-224 («abc») = F7 C5 3B A4 03 4E 70 8E 74 FB A4 2E 55 99 7C A5 12 6B B7 62 36 88 F8 53 42 F7 37 32
LSH-256-256 («abc») = 5F BF 36 5D AE A5 44 6A 70 53 C5 2B 57 40 4D 77 A0 7A 5F 48 A1 F7 C1 96 3A 08 98 BA 1B 71 47 41
LSH-512-224 («abc») = D1 68 32 34 51 3E C5 69 83 94 57 1E AD 12 8A 8C D5 37 3E 97 66 1B A2 0D CF 89 E4 89
LSH-512-256 («abc») = CD 89 23 10 53 26 02 33 2B 61 3F 1E C1 1A 69 62 FC A6 1E A0 9E CF FC D4 BC F7 58 58 D8 02 ED EC
LSH-512-384 («abc») = 5F 34 4E FA A0 E4 3C CD 2E 5E 19 4D 60 39 79 4B 4F B4 31 F1 0F B4 B6 5F D4 5E 9D A4 EC DE 0F 27 B6 6E 8D BD FA 47 25 2E 0D 0B 74 1B FD 91 F9 FE
LSH-512-512 («abc») = A3 D9 3C FE 60 DC 1A AC DD 3B D4 BE F0 A6 98 53 81 A3 96 C7 D4 9D 9F D1 77 79 56 97 C3 53 52 08 B5 C5 72 24 BE F2 10 84 D4 20 83 E9 5A 4B D8 EB 33 E8 69 81 2B 65 03 1C 42 88 19 A1 E7 CE 59 6D
Іске асыру
LSH кез-келген мемлекеттік немесе жеке, коммерциялық немесе коммерциялық емес пайдалану үшін ақысыз, C, Java және Python-да жүзеге асырылған LSH тарату үшін бастапқы кодты KISA криптографиясын іске қосудың веб-парағынан жүктеуге болады.[2]
KCMVP
LSH - бұл Кореяның криптографиялық модулін тексеру бағдарламасы (KCMVP) мақұлдаған криптографиялық алгоритмдердің бірі.[3]
Стандарттау
LSH келесі стандартқа енгізілген.
- KS X 3262, LSH хэш функциясы (корей тілінде)[4]
Әдебиеттер тізімі
|
|
---|
| | Санат
|
|