250x250
반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

개발자라면 한번쯤은 보러오는 곳

[Information System Security] Hash 본문

학교 수업/Information System Security

[Information System Security] Hash

okpyo11 2022. 10. 23. 16:50
728x90
반응형

Cryptographic hash function

- 임의의 길이 메시지 매핑 고정 길이 출력(message digest)

- message digest function

- one-way function -> H(m)으로 m을 추측 할 수 없다.

- 임력의 임의적인 변경의 경우, 출력의 모든 비트는 50%의 변경 가능성을 가진다.

- 계산상으로는 같은 다이제스트의 두 메세지를 찾을 수 없음

  • MD5(Message digest5) -> 현재 사용 X
    • Input: arbitrary number of bits
    • Output: 128 bits
  • SHA-1 -> Secure Hash Algorithm-1
    • Input: arbitrary number of bits
    • Output : 160 bits
  • SHA-256
    • Step 1 : 512bit의 배수로 메세지 패딩(16단어, 64 octets)
    • Step 2 : 한 타임에 512비트씩 메세지 처리하여 결과값을 생성

 

Birthday attack

- 많은 사람들 중에 생일이 많은 사람들의 쌍이 있다.

- 생각보다 bit를 크게 잡아야 결과가 겹치지 않는다.

 

Message Authentication Code(MAC)

Message Authentication is concerned with:

- protecting the integrity of a message = 메시지 무경성 보호

- validating identiny of originator = 발신자 신원 확인

- non-repudiation of origin = 부인봉쇄의 근원

 

Message Authentication Code(MAC)

- fixed sized authenticator for some message = 몇 메세지의 고정된 인증자

- to provide authentication for message = 메세지에 대한 인증 제공

- by using block cipher mode or hash function

Keyed hash function

- Mac based on a hash function

-> because hash functions are generally faster

-> code for crypto hash functions widely available

- H(Key | m) -> key와 message를 Hash 함수로 묶음

- H(Key | m) 대신에 H(m | Key)를 사용함

One Time Password(OTP)

  • Hash function can be used to generate one time password = 해시 함수를 사용하여 일회용 비밀번호 생성 가능
  • 각 로그인 마다 새 암호가 사용된다.

구현 방식 3가지

  1. Time-synchronized
  2. Challenge-response
  3. Hash Chain(s/key)

Time-synchronized

  1. a hardware called a security token = 보안 토큰이라고 불리는 하드웨어
  2. Client and server share a key, the serial number of the hardware token = 클라이언트와 서버가 하드웨어 토큰의 일련 번호인 키 공유
  3. Both of them compute f(key, serial #, time) = 두 제품 모두 f(키, 일련번호, 시간)을 계산함

- 값이 일치하면 성공적으로 완료됨

- "시간"을 느슨하게 동기화 해야함

*** replay attack

- 유효한 데이터 전송을 가로챈 후 반복하는 사이버 공격

- 공격자는 발신자의 데이터나 정보를 가로챈다. 만약 유효시간이 길다면 그 시간동안 공격자는 훔친 데이터로 공격이 가능하다.

- 유효 시간을 줄인다면 이 공격을 받을 확률을 낮출 수 있다.

Challenge-response

  1. a client and a server share secret S = 클라이언트와 서버는 비밀 S를 공유한다.
  2. Client wants to login the server = 클라이언트가 서버에 로그인 하려고 함
  3. The server presents a random number R to the server = 서버가 랜덤넘버 R을 생성한다.
  4. Client computs H(R|S) and presents it to the server = 클라이언트가 H(R|S)를 계산하여 서버에게 보낸다.
  5. The server computes H(R|S) If they match, the login is allowed = 서버는 H(R|S)를 계산합니다. 일치하면 로그인이 허용됩니다.

Hash Chain(s/key)

- Preparation phase 준비 단계

  • 클라이언트는 비밀 key 생성 후 기밀로 유지
  • 클라이언트는 h(k)-> KEY에 hash함수 적용 해서 제작
  • 클라이언트는 서버에 h(k)를 공유하고 서버는 이를 저장

- Login phase 로그인 단계

  • 클라이언트는 hn-1(k)를 계산하여 서버에게 알려줌
  • 서버는 hn-1(k)로 h(hn-1(k))를 계산해서 hn-1(k)의 값을 비교
  • 서버는 다음 로그인을 위해 hn-1(k) 저장

- 클라이언트만 key를 알아서 h(k)를 계산할 수 있다.

- h(k)에서는 절대 hn-1(k)를 계산 할 수 없다.

728x90
반응형
Comments