Hardner

[Stream Cipher] A5/1 본문

Computer/Crypto math

[Stream Cipher] A5/1

Hardner 2018. 4. 14. 01:48

[Stream Cipher] A5/1


A5/1이란?

- Stream cipher 방식을 사용하는 것으로, 쉬프트 레지스터를 기반으로 한다.

- GSM 핸드폰 시스템에서 사용된다.

- bit단위로 키 스트림이 생성된다.



A5/1은 3개의 선형 피드백 쉬프트 레지스터(LFSR)로 구성된다.

- X: 19 bits (…, )


- Y: 22 bits (…, )


- Z: 23 bits (…, )



Key K:


- 총 64비트이다.


- 처음에 X, Y, Z레지스터를 채운다.


- 각 값은 단일 비트이고, Key는 레지스터의 초기값 채울 때 사용한다.


A5/1 Algorithm.


m = maj()    // X, Y, Z중에서 가장 많은 수를 고른다.


Ex) maj(0, 1, 0) = 0 and maj(1, 1, 0) = 1


if  == m then  

t = XOR XORXOR

for(i=18; i>0;i--) =;

= t;

if  == m then

t = XOR

for(i=21; i>0;i--) =;

= t;

if  == m then

t = XOR XORXOR

for(i=22; i>0;i--) =;

= t;


Key stream bit 값:  XOR  XOR 


위에 한것을 암호화 해야하는 비트 수 만큼 반복하여 Key stream을 얻은 후, Key stream과 Plaintext를 XOR 연산하여 Ciphertext를 만들어낸다.



Ex)


위 예시를 보면,

m = maj()  = maj(1, 0, 1) = 1


X와 Z는 실행되고, Y는    m 이므로 실행되지 않는다.

여기서 Key stream은  0 XOR 1 XOR 0 = 1 이 될 것이다.


'Computer > Crypto math' 카테고리의 다른 글

선형 피드백 시프트 레지스터(LFSR)  (0) 2018.04.14
[Stream cipher] RC4  (0) 2018.04.14
Symmetric Key Crypto(대칭 키 암호)  (0) 2018.04.13
Security Threats(보안 위험)  (0) 2018.04.12
Security Cornerstones(보안 초석)  (0) 2018.04.12