티스토리 뷰

지난 1라운드 DES 암호화 이미지 판별 모델에 이어 2라운드 암호화 이미지에 대한 판별 모델을 만들어 보았습니다.

 

리눅스 펭귄 이미지를 이용해 각각 2라운드 암호화 시의 결과입니다.

원본
ECB 2라운드
CBC 2라운드
OFB 2라운드

OFB 모드의 경우 2라운드 암호화 때까지 제대로 암호화가 이루어지지 않았지만 다른 예도 존재합니다.

다른 이미지의 OFB2라운드 암호화

펭귄 이미지와 이와 같은 차이가 나는 이유는, 제가 펭귄 이미지를 암호화 할 때 키를 0x00, 00, 00, 00, .. , 00 으로 기본키를 잡고 암호화를 진행하였기에 stream 구조로 진행되는 OFB 모드에서 제대로 암호화가 이루어지지 않았습니다.

아래의 이미지는 random key를 이용해 암호화를 진행하였을 때입니다.

 

하지만 OFB 모드에서의 확연한 차이는 바로 세로선이 두드러진다는 점입니다.

그래서 제가 모은 1000장의 이미지 셋에 대해 전수조사를 실시한 결과 약 150여장에서 위와 같은 세로선이 두드러지는 결과를 확인할 수 있었고, 나머지 이미지에 대해서도 부분적으로 특정 색의 구분, 원본 형상의 틀이 보이는 등의 특성을 가졌습니다.

 

그렇기에 1라운드 암호화 때와는 조금 다른 세로선을 두드러지게 할 수 있는 모델을 설계할 필요가 있었습니다.

(같은 모델로 돌렸을 때는 CBC, OFB 모드 구분이 50%가 나옵니다.)

 

세로선을 두드러지게 하기 위해 1라운드 비교 모델에서 커널의 크기와 풀링 크기를 정사각형으로 잡은 것 대신 세로가 더 긴 직사각형 커널과 풀링을 갖도록 조절하였습니다.

 

새로운 모델은 다음과 같습니다.

model = keras.models.Sequential([
              keras.layers.Conv2D(32, kernel_size=(4,1), activation="relu", strides=(1,4), padding="same", input_shape=(128,128,3)),
              keras.layers.MaxPool2D(pool_size=(2,1), padding="valid"),
              keras.layers.Dropout(0.25),
              keras.layers.Conv2D(64, kernel_size=(4,1), activation="relu", strides=(1,4), padding="same"),
              keras.layers.MaxPool2D(pool_size=(2,1), padding="valid"),
              keras.layers.Dropout(0.25),
              keras.layers.Conv2D(128, kernel_size=(4,1), activation="relu", strides=(1,4), padding="same"),
              keras.layers.MaxPool2D(pool_size=(2,1), padding="valid"),
              keras.layers.Dropout(0.25),
              keras.layers.Flatten(),
              keras.layers.Dense(512, activation="relu"),
              keras.layers.Dropout(0.5),
              keras.layers.Dense(3, activation="softmax")
])

 

 

해당 모델의 summary 입니다. 계산이 틀리지 않았으니 올바로 학습되는지 확인해보겠습니다.

 

3가지 ECB, CBC, OFB 모드에 대한 판별입니다.

정확도가 약 80% 정도 나왔는데 CBC와 OFB를 구분하지 못한다면 66%의 정확도를 가져야 하지만, 어느 정도의 학습 효과를 보입니다. 

검증 데이터에 대해 loss 값이 다소 증가하는 모습을 보이지만 랜덤 키를 이용해 OFB 2라운드 암호화 시 육안으로 봐도 구분이 힘든 이미지들이 존재하기에 괜찮은 결과라 생각됩니다. 데이터셋이 좀 더 많거나 위 모델을 좀 더 가다듬으면 더 좋은 결과가 나올 것으로 예상됩니다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함