본문 바로가기
정보과학/컴퓨터통신망특론

데이터 보안(1)

by J1소프트 2023. 11. 18.
728x90

1.데이터보안의 중요성

 

1) 읽을 거리: 금융권, DB정비 왜 나서나..정확한 고객정보 마케팅 직결

"정확하고 입체적인 기업 경영정보(DB)를 확보하지 못한다면 더 이상의 마케팅은 불가능하다. DB가 생명이다".

금융권이 DB정비에 팔을 걷어 부치고 나서는 이유다. 지주회사형 금융그룹인 우리ㆍ신한금융그룹 등이 최근 EDW프로젝트에 착수하면서 방대한 DB를 어떻게 통합시킬 것인가가 시장의 관심사로 떠오르고 있다.

또 일반시중 은행들도 업무가 추가되면서 발생한 각종 DB를 재정비할 필요성을 절감하고 있다.

"연관성이 전혀 없지는 않지만 지금까지 DB정비가 DW나 CRM프로젝트의 한 과정으로 받아들여졌던 것과는 달리 현재는 DB정비 자체가 필요한 시점"이라는 진단이다.

 

◇ 금융권, 왜 DB정비를 서두르나 DWㆍCRM의 완결성을 높이기 위한 것이 물론 직접적인 이유이고 신용카드 확대, 방카슈랑스 도입과 같은 업무환경의 변화, 바젤Ⅱ에 대비한 리스크 데이터를 축적하기 위해서도 필요하다.

하나은행이 지난 4월 `DB클린징'을 위한 태스크포스를 구성하게된 목적은 리스크관리시스템 가동에 필요한 데이터의 정제성(정합성)확보였다. 하지만 은행관계자는 "최근에는 이 목적 외에도 바젤Ⅱ에 대비, 리스크관리 데이터의 축적과 관리 등이 추가됐다"고 밝혔다.             

 

2) 데이터 무결성(Integrity of Data)

메시지의 정확성에 있어 통신매체에 있는 잡음의 영향 때문에, 전송되는 메시지로 몇 개의 비트가 첨가되거나 반대로 몇 개의 비트가 없어질 수도 있습니다. 이 때는 보낸 메시지와 받은 메시지의 길이가 같지 않기 때문에 그들을 비교한다는 것은 불가능한데, 이 경우 전체메시지를 오류로 취급합니다.

 

① 오류 검출(error detection)

• 수신측에서 전송 받은 데이터가 변경되었음을 검출하는 능력 .

• 수신측은 오류가 검출되면 해당 메시지를 폐기하고, 송신측에 통지하여 메시지를 재전송하게 합니다.

 

② 오류 정정(error correction)

• 수신측에서 전송 받은 데이터가 변경되었을 경우, 송신측에 재전송을 요구하지 않고 수정하는 것.

• 송신 측은 메시지의 손상과 수정을 알 수 없습니다.

 

3) 데이터 보안(Security of Data).

① 암호화: 전송중인 메시지가 인가 받지 않은 사람에게 가로채이더라도 무의미한 것이 되도록 메시지를 변형시킵니다.

② 암호해독: 적법한 수신자가 암호화된 전송 데이터를 이해할 수 있도록 암호화된 데이터를 원래의 데이터로 변형시킵니다.

 

4) 신뢰성 있는 통신(Dependable Communication)을 만들기 위해서는?

① 데이터 무결성 + ② 데이터 보안

 

2. Parity Checking

* 오류발생확률이 낮은 통신의 경우 오류검출에 가장 일반적인 기법

* 패리티 검사방식은 전송하는 문자마다 하나의 패리티 비트를 부가하여 사용하는데, 특히 비동기 전송에 적합함.

 

1)   수평 패리티 검사와 수직 패리티 검사

1.    수평 패리티 검사

수평 패리티 검사는 블록 단위의 1의 수가 짝수 또는 홀수가 되도록 각 행에 check bit 를 부가하는 방식.

2.    수직 패리티 검사

수직 패리티 검사는, 수평 패리티 검사의 단점을 보완하는 방식으로, 각 문자 당 패리티 체크 비트 (수평 패리티 체크)와

전송 프레임의 모든 문자들에 대한 패리티 문자 (블록합 체크문자, 또는 수직 패리티 체크)를 함께 전송하는 방식

2) 패리티 검사

① 패리티 검사의 정의

오류 검출 기법의 가장 일반적인 기법으로서 데이터 내의 1-비트의 개수를 세어 1-비트의 총 수를 짝수(even parity)나

홀수(odd parity)로 만들어 하나의 비트를 추가하는 기법

 

② 패리티 비트(parity bit)

* 패리티 비트(parity bit) : 1-비트의 개수를 맞추기 위해 추가하는 비트

 

③ 패리티 검사 분석

-패리티 비트는 데이터 비트들과 함께 전송되며, 수신측은 패리티 검사를 통해 전송 데이터의 이상 유무를 파악합니다.

-패리티 검사는 단일-비트 오류는 모두 검출할 수 있으나 전송 데이터 중의 여러 비트들이 손상 되는 경우(군집성 오류:burst error)에는 50%의 검출율을 가집니다.

-두개의 패리티 비트를 두어 하나는 홀수번째 비트들을 위한 검사와 다른 하나는 짝수번째 비트들을 위한 검사를 수행합니다.

-어떤 단일 비트나 연속하는 두 비트가 변했다 하더라도 모두 검출할 수 있지만, 짝수나 홀수번째 비트가 두개 변하면 검출할 수 없다는 단점을 가지고 있습니다.

 

 군집성 오류 검출

-임의의 위치의 오류들을 검출하기 위해 송신측에서 데이터 전송 단위인 프레임 (frame)을 비트 단위로 분해하여 전송하며, 수신측은 이를 다시 조립하는 과정에서 데이터의 손상 여부를 패리티 비트를 사용하여 판단합니다.

-각 프레임을 비트 단위로 분해하여 전송할 경우 두개의 열이 동시에 간섭을 받게 되므로 오류 검출을 할 수 없습니다.

 또한, 프레임의 조립과 분해라는 큰 오버헤드를 가집니다.

 

3. Cyclic Redundancy Checks

1) 순환 잉여검사 (CRC)

① 개요

전송되는 데이터의 비트들을 다항식으로 표현하여 다항식의 나눗셈을 통해 오류를 검출하는 기법

 

② 특징

-주어진 비트 열에 대하여 다항식 B(x)를 설정합니다.

-다항식 B(x)를 다항식 G(x)로 나누어 나머지 R(x)를 결정합니다.

-T(x)=B(x)-R(x)를 정의합니다.

-T(x)에 해당하는 비트열 T를 전송합니다.

-'T’은 수신측이 받는 비트 스트림을,  T’(x)는 관련다항식을 나타낸다고 가정한다면, 수신측은 T(x)를 G(x)로 나눈다.

     • 나머지가 0              ☞ T=T’으로 간주, 오류가 발생하지 않았다고 결론.

     • 나머지가 0 이 아님      ☞  재전송을 요청.

 

2)   다항식 나눗셈

 

 

3)   CRC의 작동법

* ‘오류 검출 과정’은 다음과 같습니다.

 

1)   CRC의 분석

① 전송중인 데이터가 손상되었다.

보내고자 하는 비트열을 나타내는 다항식 T(x)에 임의의 다항식 E(x)가 더해지는 경우입니다.

즉, 손상된 데이터의 경우 다항식 T’(x) = T(x) + E(x) 입니다.

 

② 오류가 있는데 검출되지 않았다.

E(x)/G(x)의 나머지가 0인 경우 즉, G(x)가 E(x)의 인자인 경우에 해당합니다.

 

③ 단일 비트 오류인 경우

단일 비트 오류의 경우 E(x)는 하나의 항 xk이며, G(x)가 최소한 두 개 이상의 항을 가질 경우 CRC는 모든 단일 비트의

오류들을 검출합니다.

 

④ 길이가 k≤r=G(x)의 차수가 군집성 오류

x가 G(x)의 인수가 아니라면 G(x)의 차수보다 같거나 작은 길이를 가진 모든 군집성 오류들은 검출됩니다.

 

⑤ 홀수개의 비트가 영향을 받는 모든 길이의 군집성 오류

x+1이 G(x)의 인수라면 홀수 개의 비트가 손상되는 모든 군집성 오류들은 검출됩니다.

 

⑥ G(x)의 차수보다 큰 길이를 가진 군집성 오류

    · 군집성 오류의 길이  k-1r = G(x)라고 간주한다면

· k-1 = r 의 경우 오류가 검출되지 않을 확률은 ½r-1

· k-1 > r 의 경우 오류가 검출되지 않을 확률은 ½r

 

5) CRC에서 분석 가능한 오류

 

6) 근거리망(LAN)에서 널리 사용되는 G(x)에 대한 표준 다항식들

▷ CRC-12           :

▷ CRC-16           :

▷ CRC-CCITT :

▷ CRC-32           :

 

7) 검출 순환 시프트를 사용한 CRC 구현

다항식의 나눗셈 연산과 나머지 연산을 보다 빨리 하기 위해 생성 다항식 G(X)에 따라 구축되는 하나의 회로를 사용합니다. 

이 회로는 쉬프트 레지스터를 포함하고 있으며, 다음 규칙들에 따라 배타적 논리합 연산을 수행합니다

□ 배타적 논리합 회로는 어느 곳이든 관련 bi의 값이 1인 자리의 오른쪽에 있습니다.

비트열은 한 번에 한 비트씩 레지스터의 가장 오른쪽 자리로 들어갑니다.

새 비트가 들어오면, 레지스터 내의 각 비트는 왼쪽으로 한 자리씩 쉬프트됩니다.각 비트는 배타적 논리합 회로 내의 한 오퍼랜드를 이루고 있는 배타적 논리합 회로를 통과합니다.

가장 왼쪽 자리에 있는 비트는 각 배타적 논리합 회로로 보내지며 각기 배타적 논리합 연산에서 두 번째 오퍼랜드를 형성합니다. 

 

4. Hamming Codes (오류 검출 뿐이 아니라 오류 수정까지 담당하기 위해 대두된 방법)

① 전송되는 비트열 안에 복수개의 패리티 비트를 삽입합니다.

패리티 비트의 각각의 조합에 오류정의를 합니다.

전송 비트열에 오류가 발생하면, 수신측은 패리티 비트들의 검사를 통해 오류가 발생한 비트를 탐지하고 해당 비트의

바른 값을 세트합니다.

 

1) 8비트로 되어 있는 프레임의 전송인 경우, 다음과 같습니다.

 

2)    복수-비트 오류의 정정  

① 각 프레임에 대한 해밍 코드를 만들고, 모든 해밍 코드를 이차원 비트 배열로서 시작화하고, 그리고 한 번에 한 열씩

전송한다.

② 비트 이상의 오류 정정을 위한 해밍 코드를 보급한다.

 

3)    오류 검출과 오류 정정의 비교

① 기계적인 단순 비교가 가능하지 않다.

오류 검출 기법에 비해 오류 정정 기법이 일반적으로 더 많은 오버헤드를 가지나 오류 발생 비율이 낮은 경우는 재전송에 대한 비용이 더 싸다.

오류 발생 비율이 높은 경우는 잦은 재전송으로 인한 네트워크 트래픽의 증가보다는 부가적인 정정비트를 포함하는 비용이 더 싸다.

실시간 시스템의 경우는 시간적인 제약사항도 함께 고려해야 한다.

  

[정리하기] 

 

1.데이터를 전송시 전송된 데이터가 전송 도중에 변경되었는지 여부를 검출하는 것을 오류 검출(Error detection)이라 하고, 검출된 오류를 수정하는 것을 오류 정정(Error correction)이라 한다.

 

2.전송되는 데이터의 오류 검출을 위해 전송 데이터 내의 1-비트를 모두 세어 1-비트의 총 수를 짝수나 홀수로 만들기 위해 해당 데이터에 비트를 하나 더 추가하는 방법을 패리티 검사라 하며, 이때 첨가되는 비트를 패리티 비트라 한다.

 

3.전송되는 데이터의 비트열들을 대표하는 다항식을 생성하여 송신측에서 적정한 다항식으로 나누어 오류를 검출하고, 오류를 정정하는 방법을 순환 잉여 검사(Cyclic Redundancy Check)라 한다.

  

참조
① www.cs.utsa.edu/~wagner/laws/hamming.html

② www.eccpage.com

③ www2.rad.com/networks/1994/err_con/parity.htm

④ www2.rad.com/networks/1994/err_con/crc.htm

⑤ www.4d.com/docs/CMU/CMU79909

 

 

 

 

'정보과학 > 컴퓨터통신망특론' 카테고리의 다른 글

통신 프로토콜(1)  (0) 2023.11.22
데이터 보안(2)  (0) 2023.11.22
데이터 통신 기술(2)  (1) 2023.11.18
데이터 통신 기술(1)  (0) 2023.11.12
데이터 전송  (1) 2023.11.12