해시함수 LSH는 0이 1인 패딩으로 광파이프 머클담그리드 구조를 갖췄다. LSH의 메시지 해싱 프로세스는 다음의 3단계로 구성된다.
초기화:
지정된 비트 문자열 메시지의 01 패딩.
패딩된 비트 문자열 메시지에서 32단어 배열 메시지 블록으로 변환.
초기화 벡터를 사용한 체인 변수 초기화.
압축:
메시지 블록을 사용한 압축 함수를 반복하여 체인 변수 업데이트.
최종화:
최종 체인 변수에서 } -bit 해시 값 생성.
함수 해시 함수 LSH
입력: 비트 문자열 m
출력: 해시 값 ,
절차
{\} 원제로 패딩(m
Generation of message blocks , where from the padded bit string
을 위해로하다
을 위해 끝나다.
돌아오다
해시함수 LSH의 사양은 다음과 같다.
해시함수 LSH 사양
알고리즘.
다이제스트 크기(비트)( n
스텝 함수 수( s
체인 변수 크기(비트)
메시지 블록 크기(비트)
단어 크기(비트)( w
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
초기화
을(를) 지정된 비트 문자열 메시지로 설정하십시오. The given is padded by one-zeros, i.e., the bit ‘1’ is appended to the end of , and the bit ‘0’s are appended until a bit length of a padded message is , where and x은(는) x 이상 최소 정수임
let = … ( w - \-bit string. Then is considered as a -byte array , where for 모두 ( 4 - ) 0 -byt 어레이 는 다음과 같이32tM ( [ ,, [ - 1로된다.
word array 에서 다음과 같이 t 32단어 어레이 메시지 블록{( = - 을 정의한다
16단어 어레이 체인 변수 ( 0) {CV 초기화 벡터 {\textsf 에 초기화됨.
초기화 벡터 {은(는) 다음과 같다. 다음 표에서 모든 값은 16진수 형식으로 표현된다.
LSH-256-224 초기화 벡터
068608D3
62D8F7A7
D76652AB
4C600A43
BDC40AA8
1ECA0B68
DA1A89BE
3147D354
707EB4F9
F65B3862
6B0B2ABE
56B8EC0A
CF237286
EE0D1727
33636595
8BB8D05F
LSH-256-256 초기화 벡터
46A10F1F
FDDCE486
B41443A8
198E6B9D
3304388D
B0F5A3C7
B36061C4
7ADBD553
105D5378
2F74DE54
5C2F2D95
F2553FBE
8051357A
138668C8
47AA4484
E01AFB41
LSH-512-224 초기화 벡터
0C401E9FE8813A55
4A5F446268FD3D35
FF13E452334F612A
F8227661037E354a
A5F223723C9CA29D
95D965A11AED3979
01E23835B9AB02CC
52D49CBAD5B30616
9E5C2027773F4ED3
66A5C8801925B701
22BBC85B4C6779D9
C13171A42C559C23
31E2B67D25BE3813
D522C4DEED8E4D83
A79F5509B43FBAFE
E00D2CD88B4B6C6a
LSH-512-256 초기화 벡터
6DC57C33DF989423
D8EA7F6E8342C199
76DF8356F8603AC4
40F1B44DE838223a
39FE7CFC31484CD
39C4326CC5281548
8A2FF85A346045D8
FF202AA46DBDD61E
CF785B3CD5FCDB8B
1F0323B64A8150BF
FF75D972F29EA355
2E567F30BF1CA9E1
B596875BF8FF6DBA
FCA39B089EF4615
ECFF4017D020B4B6
7E77384C772ED802
LSH-512-384 초기화 벡터
53156A66292808F6
B2C4F362B204C2기원전
B84B7213BFA05C4E
976CEB7C1B299F73
DF0CC63C0570AE97
DA4441BAA486CE3f
6559F5D9B5F2ACC2
22DACF19B4B52A16
BBCDACEFDE80953a
C9891A2879725B3e
7C9FE6330237E440
A30BA550553F7431
BB08043FB34E3E30
A0DEC48D54618EAD
150317267464BC57
32D1501FDE63DC93
LSH-512-512 초기화 벡터
ADD50F3C7F07094E
E3F3CEE8F9418A4f
B527ECDE5B3D0AE9
2EF6DEC68076F501
8CB994CAE5ACA216
FBB9EAE4BBA48CC7
650A526174725FEA
1F9A61A73F8D8085
B6607378173B539b
1BC99853B0C0B9ED
DF727FC19B182D47
DBEF360CF893A457
4981F5E570147E80
D00C4490CA7D3E30
5D73940C0E4AE1EC
894085E2EDB2D819
압축
단계에서는 초기화 단계의 m 에서 생성되는 displaystyle {{의 32단어 어레이 메시지 블록을 압축함수의 반복으로 압축한다 The compression function has two inputs; the -th 16-word chaining variable and the -th 32-word message block . And it returns the -th 16-word chaining variable . Here and subsequently, denotes th t 1 에 대한 모든 t t -word 배열 집합
압축함수에 사용되는 기능은 다음과 같다.
메시지 확장 함수 :W → W + 1) { 화살표
메시지 추가 함수 : W W → W {\ {\
함수 j: W → W {
Word-permution 함수 : W →
압축함수의 전체적인 구조는 다음 그림과 같다.
LSH 압축함수
In a compression function, the message expansion function generates 16-word array sub-messages from given . Let be a temporary 16-word array set to the -th chaining variable . The -th step function having two inputs and updates , i.e., . All step functions are proceeded in order . Then one more operation by is proceeded, and the -th chaining variable is set to . The process of a compression function in detail is as follows.
함수 압축 함수
input: The -th chaining variable and the -th message block
출력:(+ ) -th chaining 변수 + 1) CV}^{( {
절차
을 위해로하다
을 위해 끝나다.
돌아오다
여기에 -th 번째 단계 함수 : W → 화살표 는 다음과 같다.
다음 그림은 압축함수의 -step 함수 j 을(를) 보여준다.
-th번째 단계 함수
메시지 확장 함수 MsgExp
( )=( ( )=( ) [ 0 , M()[ 을(를)로 두십시오 The message expansion function generates 16-word array sub-messages from a message block The first two sub-messages and 은(는) 다음과 같이 정의된다.
The next sub-messages 은(는) 다음과 같이 생성된다.
여기서 }은는) 다음과 같이 정의된 {Z에 대한 순열이다.
순열 : Z → Z 화살표
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
3
2
0
1
7
4
5
6
11
10
8
9
15
12
13
14
메시지 추가 기능 MsgAdd
For two 16-word arrays and , the message addition function 화살표 는 다음과 같이 정의된다.
믹스 함수 믹스
-th 혼합 함수 : W → {{{W\mathcal}}^{16}\rightarrow{{W\mathcal}}^{16}}모든two-word 한켤레를 혼합하여;(0≤ 나는<>8){\displaystyle(0\leq l< 8)}을 위한 T[나는]{T[나는]\displaystyle}과 T[는 a=l+8]{T[l+8]\displaystyle}은16-word 배열 T=({\displaystyle{\textsf{T}}=(T[0],\ldots ,T[15])}을 업데이트한다. 들어< 혼합 함수 는 다음과 같이 진행한다.
여기서 , 는 두 단어의 믹스함수다. 과을(를) 단어로 한다. 2단어 혼합함수 j, : 2→ W 화살표 2}}: 다음과 같이 정의된다.
함수 2단어 혼합 함수 j, {
입력: 워드 Y
출력: 워드 Y
절차
X Y
X [ X;
Y Y {\β j {\ \ ;
X Y {\ \Y^{\ \_
X Y
2단어 j , l 는 다음 그림과 같다.
두 단어 혼합 함수 , (, Y ) {
에는 j , {\displaystyle {\j},γ l 에 사용되는 비트 회전량이 나와 있다.
비트 회전량
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 -th 8-word array constant used in for is defined as follows. 초기 8단어 어레이 상수 =( [ , S [ ) 은 다음 표에 정의되어 있다. 1≤ j<>;Ns{\displaystyle 1\leq j<을 말한다.⊞ SCj1[나는]8{\displaystyle SC_{j}[나는]\l ⋘ − ← SCj1[나는]− N_{s}}, j{j\displaystyle}-th 상수 SCj)(SCj[0],…, SCj[7]){\displaystyle{\textsf{SC}}_ᆵ=(SC_{j}[0],\ldots,SC_{j}[7])}SCj[나는]에 의해 만들어진다. 8< .
초기 8단어 어레이 상수
9171990년
97884283c938982a
6c1b10a2
ba1fca93533e2355
6f352943
c519a2e87aeb1c03
cf778243
9a0fc95462af17b1
2ceb7472
fc3dda8ab019a82b
29e96ff2
02825d079a895407
8a9ba428
79f2d0a7ee06a6f7
2eeb2642
d76d15eed9fdf5fe
Word-Permutation 함수 WordPerm
=( [ ,… ,[ ) 을(를) 16자 배열로 한다. Word-permution 함수 : W → 화살표 는 다음과 같이 정의된다.
여기서 은(는) 다음 표로 정의된16에 대한 순열이다.
순열 : Z → 화살표
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
6
4
5
7
12
15
14
13
2
0
1
3
8
11
10
9
최종화
함수 : W →{ 0 {\ {\{\fIN returns -bit hash value from the final chaining variable . When is an 8-word variable and is a -byte variable, the finalization function 은(는) 다음 절차를 수행한다.
Here, denotes , the sub-bit string of a word for . And denotes , the sub-bit string of a -bit string for .
보안
LSH는 현재까지 알려진 해시함수 공격으로부터 안전하다. LSH는 이상적인 암호 모델에서< / 2 충돌 방지 및 pre-image 을 가지고 있으며은 LSH 구조에 대한 여러 질의 사항이다.[1] 스텝 수가 13개 이상일 때 기존의 모든 해시함수 공격에 대해 LSH-256이, 스텝 수가 14개 이상일 경우 LSH-512가 보안된다. 보안 마진으로 작동하는 단계는 압축 함수의 50%에 해당한다는 점에 유의하십시오.[1]
퍼포먼스
LSH는 다양한 소프트웨어 플랫폼에서 SHA-2/3을 능가한다. 다음 표는 여러 플랫폼에서 LSH의 1MB 메시지 해싱의 속도 성능을 보여준다.
LSH-512-224("abc") = D1 68 32 34 51 3E C5 69 83 94 57 1E AD 12 8A 8C 37 3E 97 1B 97 1B A2 0D CF 89 E4 89
LSH-512-256("abc") = CD 89 23 10 53 26 02 33 2B 61 3F C1 1A 69 62 FC A6 1E 9E CF FC D4 BC F7 58 58 D8 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