728x90

전체 글 57

암호학

암호학(Cryptology)암호기술(cryptography)와 암호해독(cryptanalysis)에 관하여 연구하는 학문이다. 암호학에서 사용하는 이름Alice and BobEveMalloryTrentVictor암호화와 복호화암호화하기 전의 메시지를 평문(plaintext)이라 하고, 암호화한 후의 메시지를 암호문(ciphertext)라 한다.평문은 주로 M이나 P, 암호문은 C, 암호 알고리즘은 E, 복호화 알고리즘은 D, 키는 K로 표현한다. 암호와 보안 상식비밀 암호 알고리즘을 사용하지 말 것.약한 암호는 암호화하지 않는 것보다 위험하다.어떤 암호라도 언젠가는 해독된다.암호는 보안의 아주 작은 부분이다.암호 기법의 분류치환 암호(Substitution Cipher) 전치 암호(Transpositio..

정보보호관리

정보보호(Information Security)의 목표기밀성(Confidentiality): 오직 인가된 사람, 프로세스, 시스템만이 시스템에 접근해야한다는 원칙이다. 정보의 소유자가 원하는 대로 정보의 비밀이 유지되어야한다. 기밀성을 보장하기 위한 기술에는 접근제어, 암호화 등이 있다. + 수신자의 공개키로 암호화하고 수신자의 사설키로 복호화하는 것은 암호 모드로 기밀성 서비스이다. 무결성(Integrity) 가용성(Availability) 인증성(Authenticity) 책임추적성(Accountability): 개체의 행동을 유일하게 추적해서 찾아낼 수 있어야한다는 원칙이다. 부인 봉쇄, 억제, 결함 분리, 침입 탐지 예방, 사후 복구와 법적인 조치 등이 포함된다. 시스템은 반드시 활동 상황을 기록하..

Distributed System 19

Apache Projects이전 글에서 작성된 MapReduce는 단일 처리에는 효율적이지만, 다단계 알고리즘에서는 비효율적이다.데이터 공유를 위한 효율적인 기본 기능이 없으며, 단계 간 상태는 분산 파일 시스템으로 저장되어 복제 및 디스크로의 저장으로 인해 속도가 느려지기 때문이다. Disk-based framework(e.g., MapReduce)는 중간 결과를 디스크에 저장하며, 각 쿼리마다 데이터를 디스크에서 다시 로드한다. 따라서 장애 복구가 용이하다. ETL(Extract, Transform, Load)와 같은 작업에 적합하다.Memory-based framework(e.g., Spark)는 중간 결과를 메모리에 유지하여 I/O 비용을 절감한다. 따라서 메모리 가용성에 민감하다. 데이터셋에 적..

DKU/분산처리 2024.12.15

Distributed System 18

Hadoop EcosystemBig data빅데이터는 방대한 양의 데이터를 의미하는 포괄적인 용어다.이 데이터를 효율적으로 처리하기 위한 프레임워크와 연구 개발 (R&D) 이니셔티브를 포함한다. 빅데이터의 3V는 다음과 같다.Volume: 데이터의 방대한 크기Velocity(속도): 데이터의 생성 속도 및 처리 속도 요구사항Variety(다양성): 다양한 데이터 소스와 형식빅데이터는 서로 다른 출처에서 발생하며, 크기와 형식도 다양하다.Velocity는 데이터 생성 속도 뿐만 아니라 데이터 처리 속도를 포함한다. Structured vs Unstructured Data구조적 데이터는 고도로 조직화된 데이터로, 주로 관계형 데이터베이스(relational database)나 데이터 웨어하우스(data wa..

DKU/분산처리 2024.12.15

Distributed System 17

SecurityDependability vs Security: 신뢰성과 보안신뢰할 수 있는 컴퓨터 시스템은 그 서비스를 제공할 것이라고 정당하게 믿을 수 있는 시스템이다. 신뢰성과 관련된 요구사항RequirementDescriptionAvailability(가용성)Readiness of usage: 사용준비Reliability(신뢰성)Continuity of service delivery: 서비스 제공의 유지Safety(안전성)Very low probability of catatrophes: 비극의 낮은 가능성Maintainability(유지보수성)How easy to be repaired: 얼마나 수리하기 쉬운가 이 외의 의도적인 실패는 일반적으로 보안 문제로 간주된다.CIA Triad: CIA 삼각형..

DKU/분산처리 2024.12.14

Distributed System 16

Fault Tolerance 이어서Failure Detection: 오류 감지프로세스가 실제로 충돌했는지를 신뢰성 있게 감지하는 방법일반적인 모델: 각 프로세스는 장애 감지 모듈을 장착하고 있으며, 프로세스 P가 다른 프로세스 Q 반응을 요청한다. Q가 반응하면, P는 Q가 살아있다고 간주하며, Q가 t 시간 내에 반응하지 않으면, P는 Q가 충돌했다고 의심한다.실질적인 구현: P가 t 시간 내에 Q로부터 heartbeat(정기적인 상태 확인 메시지)을 받지 못하면, P는 Q를 의심한다. 이후 Q가 P에게 메시지를 보내면, P는 Q에 대한 의심을 멈추며 P는 timeout 값 t를 늘린다. Q가 실제로 충돌했다면, P는 Q에 대한 의심을 계속 유지한다. Reliable Remote Procedure Ca..

DKU/분산처리 2024.12.13

Routing

네트워크는 노드 집합과 노드 위에 정의된 방향성 링크 집합으로 이루어진 구조이다.각 링크에는 실수가 할당된다. 따라서 네트워크 G는 (V, E, A)로 표현된다.V는 노드들의 집합을, E는 방향성 링크들의 집합을, A는 링크에 할당된 실수의 집합을 나타낸다. 라우팅이란, 네트워크의 출발노드(source node)에서 도착 노드(destination)까지 데이터를 전달하기 위한 경로를 구성하는 과정이다. 경로 결정 위치에 따른 라우팅 방식의 분류각 노드에서 경로 결정을 수행하는 라우팅 방식중앙 노드에서 경로 결정을 수행하는 라우팅 방식시작 노드에서 경로 결정을 수행하는 라우팅 방식일부 노드의 집합에서 경로 결정을 수행하는 라우팅 방식경로 결정 시점에 따른 라우팅 방식의 분류각 패킷의 전송 시점에 경로 결정..

Amortized Analysis

Amortized Runtime Analysis: 분할 상환 런타임 분석 알고리즘 A는 아래와 같은 규칙적인 런타임 패턴을 보인다고 하자.각 루프에서는 $\Theta(1)$의 시간이 걸린다.마지막 루프에서는 $\Theta(n)$의 시간이 걸린다.그렇다면 알고리즘 A의 전체 런타임은 얼마일까? $\Theta(n)$이다.마지막 루프에서 발생하는 시간 $\Theta(n)$이 이전 모든 루프에 고르게 분배된다고 가정하면, 각 루프의 평균적인 시간은 여전히 $\Theta(n)$이 된다. 이러한 방식의 런타임 분석을 분할 상환 분석이라 부른다. 하지만, 알고리즘 B는 알고리즘 A와 다소 다르다.대부분의 루프는 $\Theta(1)$의 시간이 걸린다.가끔 드물게 $\Theta(n)$의 시간이 걸리는 루프가 발생한다.이..

Red-Black Trees

레드-블랙 트리는 이진 탐색 트리에 1비트 속성을 추가한 구조로, 각 노드는 빨강 또는 검정색으로 색칠된다. 모든 리프 노드는 NIL이며, 검정색으로 칠해져 있다.이를 레드-블랙 트리 T의 모든 리프에 대해 single sentinel 노드 nil[T] 라고 한다.color[nil[T]]는 항상 검은색이며, 루트 노드의 부모도 nil[T]다. 레드-블랙 트리는 이진 탐색 트리의 모든 속성을 상속받고, nil[T]에 저장된 키 값은 중요하지 않으므로 무시한다.Properties of red-black trees 레드-블랙 트리는 트리의 균형을 유지하기 위해 다음 다섯 가지 속성을 만족한다.모든 노드는 빨강 또는 검정이다.트리의 루트 노드는 항상 검정색이다.모든 리프 노드(센티널 nil[T])는 항상 검정색..

Binary Search Trees

탐색 트리란, 동적 집합 연산을 지원하는 자료구조이다. 딕셔너리와 우선순위 큐로 사용 가능하다.기본 연산은 트리의 높이에 비례하는 시간이 소요된다.노드가 n개인 완전 이진 트리인 경우: $O(\log n)$노드가 n개인 선형 체인의 경우: $O(n)$탐색 트리의 유형에는 이진 탐색 트리, 레드-블랙 트리, B-트리 등이 있다Binary Search Trees트리 높이를 h라 할 때, 많은 동적 집합 연산을 $O(h)$시간 안에 수행할 수 있다.이진 트리는 각 노드가 객체로 구성된 linked list 자료 구조로 표현된다.root[T]는 트리 T의 루트를 가리키며, 각 노드는 다음과 같은 필드를 포함한다.keyleft: 왼쪽 자식right: 오른쪽 자식p: 부모, p[root[T]] = NIL저장된 ke..

728x90