본문 바로가기

IOS

iOS에서 RSA암호화(5) 이전글 : 2017/09/19 - [Mac/iOS] - iOS에서 RSA암호화(4) 여기까지를 종합하면 iOS에서 RSA암호화를 할 수 있습니다. 앞에서 언급했다시피 Cheon Brave님 블로그를 참고해서 OpenSSL을 프로젝트에 추가하고 구현하였습니다. //// MLRSAEncryptor.m// OpenSSLTest//// Created by zamcom on 2017. 9. 19..// Copyright © 2017년 zamcom. All rights reserved.// #import "MLRSAEncryptor.h"#include #include @implementation MLRSAEncryptor - (NSString*)encryption:(NSString*)planText{ char mo.. 더보기
iOS에서 RSA암호화(4) 이전글 : 2017/09/19 - [Mac/iOS] - iOS에서 RSA암호화(3) 1. ASN.1 그다음로 설명할게 ASN.1 이다. 참고자료 A Layman's Guide to a Subset of ASN.1, BER, and DER 2017/09/19 - [Mac/iOS] - iOS에서 RSA암호화(1) 에서 설명을 위해 생성한 공개키는 ASN.1 포맷으로 되어 있다. 이중에 우리가 암호화에 필요한 N(Modulus)와 e(public exponent)를 구하려면 ASN.1 구조를 알아야 한다. 파서를 이용하거나, 서버에서 각각의 값을 가져올 수도 있겠지만, 여기서는 공개키에서 직접 Modulus와 public exponent 값을 추출해서 넣는 방법을 쓰도록 한다. 2. 파싱하기 자세한 구조를 살.. 더보기
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암호화(1) 1. 개요 현재 환경 서버 - Java모바일 Android - Java모바일 iOS - Objective-C 위의 환경에서 모바일에서 생성한 데이터를 서버로 암호화 해서 전달해야 했다. 암호화 방법은 RSA를 사용하기로 했고 공개키와 개인키는 서버에서 만든걸 사용하기로 했다. 서버에서 모바일로 공개키를 받아와서 처리할 수도 있지만, 회의결과 처음부터 공개키 정보를 가지고 있기로 했다. 사용할 공개키는 다음과 같다.(설명을 위해 http://travistidwell.com/jsencrypt/demo/ 에서 공개키를 하나 생성 후 Hex String으로 변환) 30820121300d06092a864886f70d01010105000382010e00308201090282010079794aae2052a6842a8.. 더보기