본문 바로가기

iOS에서 RSA암호화(3) 이전글 : 2017/09/19 - [Mac/iOS] - iOS에서 RSA암호화(2) 1. RSA 원리 RSA 구조체를 살펴보면 n, e, d, p, q 와 같은 변수가 나오는데 이를 이해하려면 RSA에 대해서 약간의 지식이 필요하다. RSA는 소수(Prime Number)를 이용한 공개키 암호 시스템이다. 어떤 수가 임의의 두 큰 소수의 곱으로 되어 있을 때, 이 두 큰 소수를 찾아 내기란 쉽지 않다. 이때 큰 두 소수를 p와 q라고 한다. 그리고 이 두 p와 q의 곱을 N이라고 한다. p, q : 서로 다른 소수N = p*q N이 공개되더라도 p, q의 값을 쉽게 구할 수는 없다. 이제 정수 e를 선택해야 하는데, 이 값은 (p-1) * (q - 1) 인 값과 공통인수가 없는 3 ~ (N-1) 범위에 .. 더보기
iOS에서 RSA암호화(2) 이전글 : 2017/09/19 - [Mac/iOS] - iOS에서 RSA암호화(1) iOS에서 RSA암호화 하는 방법을 찾아본 결과 1. RSA 암호화를 지원하는 라이브러리를 사용한다.2. 직접 RSA를 구현한다. 이와 같이 결론을 내렸다. 2번 방법을 하기엔 시간이 부족하고, 1번 방법을 찾아본 결과 OpenSSL 에 RSA알고리즘이 있는 것을 확인 했다. 이때 Cheon Brave 님 블로그가 가장 도움이 많이 되었다. Cheon Brave 님 블로그 : IOS - RSA 공개키 암호화 (Modulus, Exponent 사용) - 64bit 정책 대응방법 포함 동일한 내용이지만 다시한번 언급하면, 1. OpenSSL 정적 라이브러리를 만든다(출처 : https://github.com/x2on/Open.. 더보기
iOS에서 RSA암호화(1) 1. 개요 현재 환경 서버 - Java모바일 Android - Java모바일 iOS - Objective-C 위의 환경에서 모바일에서 생성한 데이터를 서버로 암호화 해서 전달해야 했다. 암호화 방법은 RSA를 사용하기로 했고 공개키와 개인키는 서버에서 만든걸 사용하기로 했다. 서버에서 모바일로 공개키를 받아와서 처리할 수도 있지만, 회의결과 처음부터 공개키 정보를 가지고 있기로 했다. 사용할 공개키는 다음과 같다.(설명을 위해 http://travistidwell.com/jsencrypt/demo/ 에서 공개키를 하나 생성 후 Hex String으로 변환) 30820121300d06092a864886f70d01010105000382010e00308201090282010079794aae2052a6842a8.. 더보기