본문 바로가기

Computer Science

[정보보호] AES 알고리즘 AES 애니메이션을 보셨나요 ?AES 는 128bit 블록을 128bit, 192bit, 256bit 의 키로 암호화를 수행할 수 있습니다.AES 애니메이션에서 보여지는 것은 128bit (16byte) 키로 암호화를 수행하는 과정입니다.AES 애니메이션을 기준으로 알고리즘을 설명하도록 하겠습니다.(제가 자료실에 올려놓은 AES 알고리즘 문서는 더욱 상세한 수학적 내용이 있습니다.AES 애니메이션이 이 문서에 알고리즘을 굉장히 알기 쉽도록 잘 구성되어 있으므로무엇으로 구현을 해도 똑같습니다. 애니메이션을 다 이해하신 후 문서를 보시면 더 잘이해될 겁니다.)먼저 아래 그림을 보세요.[그림 1] Encryption Process위의 [그림 1]을 보시면 암호화 과정이 매우 간단한 것처럼 보입니다.일단 키스케.. 더보기
[정보보호] DES 암호 알고리즘 자 드디어 본격적으로 암호 알고리즘을 공부해 봅시다.DES 알고리즘을 들어가기 전에 블록 암호의 구조를 간단하게 살펴보도록 하겠습니다.아래 사진은 IBM의 암호학자였던 Horst Feistel (독일) 의 사진입니다.흐 .. 아무래도 사진을 보면 친숙해서 머리속에 더 잘 남을 것 같아 ...하나 올려봅니다. ^^;[사진 1] Horst Feistel이 분이 만든 블록암호의 구조가 DES에 그대로 쓰입니다.일명, Feistel Cipher 라고 불리는 방식입니다.(Feistel Network 라고도 합니다.)블록 암호는 주로 단순한 함수를 반복적으로 적용해서 암호학적으로 강한 함수를 만드는 과정으로 개발됩니다.이때 반복되는 함수를 라운드 함수라고 하고, 라운드 함수에 적용되는 키는 라운드키라고 합니다.라운.. 더보기
[정보보호] 블록암호 기법 블록 암호는 고정된 n-bit 블록을 n-bit 블록으로 변환시키는 것입니다.따라서, 어떤 길이의 평문을 암호화 시킬 때는 평문을 특정한 길이로 분할하여야 합니다.만약에 64bit 블록으로 암호화 하는데 평문의 길이가 64bit 가 되지 않거나 ... 마지막 블록이 64bit 되지 않으면 어떻게 해야 할까요?이럴 때는 패딩(padding) 기법을 써야 합니다. 즉, 64bit 블록이 되도록 모자란 부분을 채워놓는 것이죠.(패딩 방법에도 여러가지 방법이 있습니다. 추후 설명)블록 암호는 패딩과 같은 문제도 있고 블록으로 나눠서 처리를 하기 때문에 블록들을 어떠한 방식으로 사용할 것인가에 대한 방식도 규정을 해야 합니다.즉, 블록 암호는 암호 알고리즘만으로는 ... 완성이 되지 않습니다.암호 알고리즘은 64.. 더보기
FSM 구현(Mealy machine, moore machine) -문자열 검사기* Design the Moore Model machine implementation to detect the 3-bit pattern 101.* Design the Mealy Model machine implementation to detect the 3-bit pattern 101. 더보기
The Dining Philosophers '철학자들의 만찬'입니다 멀티프로세서를 만드는데 기준이 된다는 파일이라고합니다. 식사하는 철학자들이 자원을 공유하는 동기화된 병행프로세서를 위한 표준 모델입니다. 우선 둥그런 탁자가 있죠.. 거기에 다섯명의 철학자들이 밥을 먹으려고 하고 있죠.. 그런데 젖가락은 한 사람앞에 한짝밖에 없어요.. 그러니깐 동시에 밥을 먹을수 있는 인원은 2명이죠.. 각 철학자가 한짝씩 젖가락을 잡으면 한사람도 식사를 할수 없는 교착상태에 빠지게 됩니다. 철학자들은 단지 자신의 오른쪽이나 왼쪽의 젖가락만을 취할수 있죠... 이것은 우선 젖가락을 얻으려고 시도하고 성공하면 되돌려 주려고 다시 생각을 하죠.. 후후후 이것을 이해하려면 8시간은 있어야 한다구 교수님이 그러시더군요... 4시간에 이해하면 이쪽 분야에서 전문가가 된다.. 더보기
교착상태 (deadlock) - 다중 프로그래밍 체제에서 하나 또는 그 이상의 프로세스가 수행할 수 없는 어떤 특정 사건(event)을 기다리고 있는 상태. 망에서는 사용 가능한 버퍼가 없어 일단의 노드들이 패킷을 전송할 수 없는 상태이다. - 2개 또는 그 이상으로 분리되어 실행 중인 프로세스들이 여러 자원에 대하여 경쟁을 하는 상황. P라는 프로세스가 자원 X, 그리고 자원 Y를 필요로 하며 수행 중 자원 요청도 이와 같은 순서로 한다고 가정하고, 동시에 프로세스 Q는 자원 Y, 그리고 자원 X를 필요로 하고 자원 요청 역시 같은 순서로 한다고 가정하자. 만약 프로세스 P가 자원 X를 획득하였고, 동시에 프로세스 Q가 자원 Y를 획득하였다면, 다음에 어떤 프로세스도 요구하는 자원을 획득할 수 없다. 왜냐하면 각각 이미 다른 프로.. 더보기
임계구역 문제 임계구역 문제란?프로세스들이 협력할 때 사용할 수 있는 프로토콜을 설계하는 것이다. 해결안(세가지 요구조건)1. 상호배제 (Mutual exclusion) : 어떠한 프로세스가 자기의 임계구역에서 실행된다면 다른 프로세스들은 그 구역에서 실행될 수 없다.2. 진행 (Progress) : 자기의 임계구역에서 실행되는 프로세스가 업으면, 나머지 구역에서 실행중이지 않은 프로세스들만 진입할 수 있는지 결정할 수 있고, 무한정 연기될 수 없다.3. 한정된 대기 (Bounded waiting) : 프로세스가 자기의 임계구역에 집입하려는 요청을 한 후 허용될 때까지 다른 프로세스들이 자신의 임계구역에 진입하도록 허용되는 횟수에 제한이 있어야 한다. 경쟁 조건이 발생하기 쉬운 커널 자료 구조-메모리 할당을 관리하는 .. 더보기
Thread의 Def 와 Coding :: 멀티태스킹 - 하나의 CPU가 여러 개의 프로세스를 교대로 수행하는 것입니다. 윈도우에서는 웹 서핑을 하면서 영화를 보기도 하고 메신저를 하기도 합니다. 이렇게 컴퓨터 한 대에서 여러가지 작업을 할 수 있는 것을 멀티태스킹이라고 합니다. 이러한 작업이 가능하게 하기 위해서 CPU는 시간을 분할하여 각 프로그램에 제어권을 한 번씩 나누어 주면서 CPU를 적절하게 사용하는 것입니다. 멀티태스킹은 운영체제에서 제공해주는 기능이므로 우리가 프로그래밍할 수 있는 부분이 아닙니다. :: 멀티스레딩 - 하나의 CPU가 여러 개의 스레드를 교대로 수행하는 것입니다. 자바 프로그램은 기본적으로 main()메서드가 수행되면서 하나의 스레드가 동작하게 됩니다. 하지만 자바에서는 main()메서드에 의한 스레드 이외의 .. 더보기
Atomic Operation 이란? Atomic Operation의 사전적 의미기능적으로 분할할 수 없거나 분할되지 않도록 보증된 조작. 원자와 같이 분할할 수 없다는 것을 비유하여 이렇게 부른다. 원자 조작은 끼어들기가 불가능하며, 만일 중지되면 동작 개시 직전의 상태로 시스템을 복귀시킬 것을 보증하는 복구(백업과 복원) 기능이 제공된다. Atomic Operation의 프로그래밍언어적 의미Atomic Operation이 필요한 부분은 멀티스레드 프로그램에서 공유 자원들에 대해 여러 스레드가 서로 동시에 액세스 하는 경쟁상태(race Condition)을 막시 위한 하나의 방법이다. 쉽게 말에 동기화를 위한 하나의 방법이다. ---------------------------------------------------------------.. 더보기
대칭형 다중 처리 (SMP) 대칭형 다중 처리 또는 SMP(symmetric multiprocessing)는 두 개 또는 그 이상의 프로세서가 한 개의 공유된 메모리를 사용하는 다중 프로세서 컴퓨터 아키텍처이다. 현재 사용되는 대부분의 다중 프로세서 시스템은 SMP 아키텍처를 따르고 있다. SMP 시스템은, 작업을 위한 데이터가 메모리의 어느 위치에 있는지 상관없이 작업할 수 있도록 프로세서에게 허용한다. 운영체제의 지원이 있다면, SMP 시스템은 부하의 효율적 분배를 위해 프로세서간 작업 스케줄링을 쉽게 조절할 수 있다. 그러나 메모리는 프로세서보다 느리다. 단일 프로세서라도 메모리로부터 읽는 작업에 상당한 시간을 소비한다. SMP는 이를 더욱 악화시키는데, 한 번에 한 개의 프로세서만이 동일한 메모리에 접근 가능하기 때문이다. .. 더보기