제임스딘딘의
Tech & Life

개발자의 기록 노트/Algorithm 5

[보안] 암호화 알고리즘

DES (Data Encryption Standard) ; 데이터 암호 표준 DES는 개인키를 사용하여 데이터를 암호화하는 방법으로서 널리 사용되며, 미국 정부는 이 알고리즘을 해독하기 어렵다고 판정하고 다른 나라들에 수출하는 것을 금지하고 있다. DES에는 72,000,000,000,000,000 (72천조)개 이상의 암호 키가 사용되는 것이 가능하다. 주어진 각 메시지를 위한 키는, 이렇게 막대한 량의 키 중에서 무작위로 선택된다. 다른 개인키 암호화 방법과 마찬가지로, 송신자와 수신자 둘 모두는 동일한 개인키를 알고, 사용해야만 한다. DES는 각 64 비트 데이터 블록에, 56 비트 길이의 키를 적용한다. 이 과정은 여러 가지 모드에서 실행될 수 있으며, 16번의 연산이 수반된다. 비록 DES가 ..

10진수를 2진수로 변환하는 알고리즘 (또다른 방법)

10진수를 2진수로 변환하는 알고리즘 (또다른 방법) 우선 몇자리의 2진수를 만들것인지를 알아내거나 제시한다.그리고, 기본적인 아래의 규칙 하나만 기억한다.rule : 작으면 0 / 크거나 같으면 1 예를 들어보겠다. 10진수 600을 10자리의 2진수로 만들 경우를 생각해보자.10자리의 2진수로 만들 것이므로, 2의 10승 = 1024 부터 시작한다.그 후, 2의 9승, 2의 8승... 2의 1승까지 차례로 rule대로 비교해 내려간다.아래의 과정으로 간단하게 만들 수 있다. 600 이 1024보다 작으므로 0600이 512보다 크거나 같으므로 1, 그리고 600 - 512 = 8888이 256보다 작으므로 088이 128보다 작으므로 088이 64보다 크거나 같으므로 1, 그리고 88-64 = 242..

해시 테이블에 대하여 (about Hash Table)

해시 테이블은 한마디로 공간을 팔아 시간을 사다 라는 말로 표현할 수 있다. 주소를 이용해서 배열같이 직접 탐색이 가능하다. 해시테이블의 기본 개념은 다음과 같다. 데이터를 담을 테이블을 미리 크게 확보해 놓은 후 입력받은 데이터를 해시하여 테이블 내의 주소를 계산하고 이 주소에 데이터를 담는 것, 이것이 바로 해시 테이블의 기본 개념이다. 해시테이블은 특이하게도 데이터가 입력되지 않은 여유공간이 많아야 제 성능을 발휘할 수 있다. 테이블 내의 주소를 계산할 때는 해시함수를 이용하는 데 이에는 두가지 방법이 사용된다. 1) 나눗셈법 주소 = 입력값 % 테이블의 크기 하지만 이는 충돌과 클러스터 문제가 발생할 가능성이 높다. 2) 자릿수 접기 Hello -> 72 + 101 + 108 + 111 = 500..

OAuth 인증방식 이해하기

OAuth 인증방식 이해하기 본 문서는 OAuth의 이해를 돕기 위해 작성되었습니다. OAuth 학습을 뛰어넘고 바로 예제 소스를 보며 개발을 하고 싶다면, 튜토리얼를 참고하시기 바랍니다. 본 문서 내의 용어 일관성을 위해 OAuth스팩에 있는 용어를 사용하였습니다. 본 문서에서 용어는 모두 이탤릭체로 표시됩니다. 용어정의 서비스 프로바이더(Service Provider) – API를 제공하는 서비스를 말합니다. 예> 스프링노트 사용자(users) - 서비스 프로바이더 혹은(그리고) 컨수머를 사용하는 이를 말합니다. 컨수머(Consumer) – API를 사용하여 개발된 애플리케이션 서비스를 말합니다. 예> 스프링노트의 API를 이용하여 개발된 매시업 보호된 자원(Protected Resources): 서..

1