1 / 53

타원암호와 구현상에서 발생할 수 있는 취약점

타원암호와 구현상에서 발생할 수 있는 취약점. PLUS 최종민. 발표자 소개. 최종민 POSTECH-PLUS 회장. Elliptical Curve Cryptography ?. 타원 암호 (ECC: elliptical curve cryptography ) 는 공개키 암호 의 일종으로써 (public-key cryptography) 로 타원 곡선 을 이용한 암호이다. Cryptography. Cryptography. Cryptography. 내용의 유출을 방지 내용의 변조를 방지

urbano
Download Presentation

타원암호와 구현상에서 발생할 수 있는 취약점

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 타원암호와 구현상에서 발생할 수 있는 취약점 PLUS 최종민

  2. 발표자 소개 최종민 POSTECH-PLUS 회장

  3. Elliptical Curve Cryptography? 타원 암호(ECC: elliptical curve cryptography)는 공개키 암호의 일종으로써(public-key cryptography)로 타원 곡선을 이용한 암호이다.

  4. Cryptography

  5. Cryptography

  6. Cryptography • 내용의 유출을 방지 • 내용의 변조를 방지 • 보낸 사람에 대한 검증

  7. Cryptography

  8. Cryptography

  9. Public key

  10. Public key

  11. Public key

  12. Public key RSA -> ECC

  13. RSA VS ECC

  14. RSA (단, k와 n은 서로소은 약수의 개수)

  15. RSA

  16. What is elliptic curve?

  17. What is elliptic curve?

  18. 타원 곡선에서 더하기, 곱하기 • 타원 곡선에서는 점과 점 사이의 더하기와 점과 상수 사이의 곱하기가 가능함.

  19. What is elliptic curve? =

  20. What is elliptic curve? =

  21. PLUS R’ Q P R

  22. PLUS O P Q

  23. PLUS 2P’ P 2P

  24. inverse Q P -Q R

  25. associative R Q U P S

  26. associative R Q U P T

  27. multiply P 3P 4P=O 2P

  28. 곱하기 • 17G = 2*2*2*2*G+G • 곱하기의 계산 시간은 log time

  29. 간단하게 말해.. • 일종의 더하기 곱하기 빼기가 가능하고 나누기가 불가능 한상황으로 생각

  30. Public key

  31. Curve Point G Pa=s*G Secret s G Secret r Pb=r*G Pc=r*Pa Pc’=s*Pb

  32. What is elliptic curve? • 두 사람이 각각 비밀값r,s를 가지고 적당히 데이터를 잘 주고 받으면! • 둘 만 아는 값 r*s*G를 가지게 된다!

  33. What is elliptic curve? • 2종류의 표현이 있음 • 소수를 이용한 • 2의 지수를 이용한 • 우리가 이야기 할 것은

  34. What is elliptic curve?

  35. What is elliptic curve? • 에서 m 이 소수가 아닌 것. (Weil descent attacks)

  36. Encryption and Decryption way with only ECC • F. Amounas and E.H. El Kinani, ECC Encryption and Decryption with a data Sequence , Applied Mathematical Sciences. Vol 6. 2012, no. 101. 5039 – 5047에 있는 방법 및 보편적으로 하는 방법 • Demo를 위한 구성은 위 논문의 방법을 구현함.

  37. Curve Point G Pa=s*G Secret s G Secret r Plaintext m Pb=r*G Pm’=Pc-s*Pb m에 해당하는 점 Pm Pc=r*Pa+Pm Pm’에 해당하는 원문

  38. Pm’= Pc – s*Pb = r*Pa+Pm-s*r*G =r*s*G-s*r*G+Pm=Pm r*s*G

  39. What is elliptic curve? rsG

  40. What is elliptic curve? • 논문에서는 위와 같은 방식으로 public key가 있으면, 통신 시작 시랜덤 값 r을 설정하여 r을 이용하여 data를 encryption 한다.

  41. What is elliptic curve? • 수학적으로는 안전하다. (우리가 의도하지 않은 정보는 전혀 들어나지 않는 다면) • 그러나 현실은 그렇지 않다. • 만약 우리가 하나의 plain text를 완벽히 알 수 있다면 어떻게 될까? • 이는 충분히 가능한 일이다. • ex) 어떤 application이 최초에는 항상 안녕~ 이라는 메시지를 보낸다는 식의 패턴 바탕으로 추측가능.

  42. Curve Point G Pa=s*G Secret s G Secret r Plaintext m Plaintext m’ Pm을 알고 있는 3자 m에 해당하는 점 Pm’ m에 해당하는 점 Pm Pb=r*G Pb=r*G Pc’=r*Pa+Pm’ Pc=r*Pa+Pm r*s*G Pm’=Pc’-r*s*G r*s*G=Pc-Pm

  43. What is elliptic curve? • r*s*G를 알았으므로 이제 secret key r과 secret key s로 암호화 되는 모든 부분들이 해석가능! Pc’=r*s*G+Pm

  44. What is elliptic curve? • 원문하나를 알았다고 다른 원문을알아 낼 수 있는 방법이 없음.. • Decode를 위해 중요한 key 값이 d 인데하나의 암호문, 원문 쌍을 안다고 하여 d를 구할 수 없다.

  45. What is elliptic curve? • Demo 환경은 자료에 주어진 환경과 동일하게 구성함. (실제로 쓰는 스펙 보다도 단순한 스펙nist curve가 아닌 간단한 curve를 사용) • Curve

  46. ECC • Jecc.sourceforge.net -> java ECC crypto open source project. • 의 소스코드를 수정하여 만듬. • JAVA 는 library 로 ecc를 지원해주어 ecc관련 프로그램을 작성시 쉽게 짤 수 있음.

  47. 코드

  48. 코드 Pc 알려진 부분의 암호화된 정보를 curve위의 점으로 변환 Pm 알려진 부분의 문자 정보를 curve위의 점으로 변환 - Pm -r*s*G

  49. 실행 encrypt 특정 값을 알 때

  50. 어떻게 막을까 • Pm이 예측이 불가능 하도록 한다. • r*s*G의 값을 알아도 다음 번에 사용 불가능 하도록 한다.

More Related