티스토리 뷰

지난 16라운드 DES 암호화 이미지 판별 모델을 적용하여 1라운드 암호화 이미지 판별을 실시하였습니다. 

사실 16라운드가 암호화가 더 잘 된 상황이지만, CBC와 OFB는 구분 할 수 없었습니다. 

1라운드 암호화 이미지의 경우 OFB와 CBC의 구분이 확실하고, ECB와 OFB 또한 어느정도의 구분이 가능하기 때문에 3가지 모드 모두를 판별하는 모델까지 작성하였습니다.

 

아래는 1라운드 암호화시 이미지입니다. (원본, ECB, CBC, OFB)

원본 이미지
ECB 1라운드
CBC 1라운드
OFB 1라운드

우선 기본 모델은 다음과 같습니다. (2가지 모드 비교)

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

데이터셋에 대한 코드는 지난 AES 암호화 이미지 판별에서와 마찬가지 방법을 사용하였습니다. 

 

컴파일은 다음과 같습니다.

model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics="accuracy")

ECB, CBC 판별
CBC, OFB 판별
ECB, OFB 판별
ECB, CBC, OFB 판별

3가지 모드 판별은 모델의 마지막 출력층을 Dense(3, activation="softmax") 으로 하였습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함