hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
크레시 전투 요약
잉글랜드의 에드워드 3세가 이끄는 잉글랜드군은 대략 12,000명밖에 없었고, 프랑스의 필리프 6세가 이끄는 프랑스군은 대략 30,000~40,000명이었던 것으로 추산된다. 심각한 수적 열세에 처해있는 잉글랜드군이 엄청난 대승을 거둔 이유는, 더 뛰어난 무장과 전술 때문이었다고 여겨진다. 이 전투에서 잉글랜드군은 현대 화력 개념의 중세적 도입을 성공적으로 이루어냈다. 장궁병의 집단 사격은 프랑스 기사들에게 치명적인 피해를 주었다. 이 사실은 당시까지 통용되던 "궁병은 무장한 기사에게 별반 피해를 입힐 수 없다"라는 통념을 완전히 깨뜨렸다.
이 전투에서 프랑스군의 용맹한 기사들은 장궁병에게 돌격하다가 진흙탕에 빠져 탈진해 있었다. 그 결과로 보드킨 화살에 완전히 꿰뚫리는 신세가 되었다. 이 전투의 결과로 프랑스 귀족의 3분의 1이 사망한 것으로 알려져 있다.
크레시 전투 요약
전투 후반에, 장궁병들도 기사의 갑옷을 꿰뚫기 힘들게 되자, 그들은 기사들의 측면으로 돌아가 말을 화살로 공격해 죽였다. 그래서 기사들은 진흙탕 한가운데에서 무거운 철갑을 입고 두 발로 서 있을 수밖에 없었다.
많은 역사가들은 이 전투를 "기사도 시대의 종말"로 보고 있다. 왜냐하면 이 전투 도중에 많은 부상자와 포로들이 "즉결 처형" 당했기 때문이다. 이것은 기사도 정신에 완벽하게 위배되는 일이다. 그리고 말 위에 탄 기사는 더 이상 보병들에게 "무적"이 아니게 되었다.
크레시 전투 배경
1337년 전쟁이 시작되었고, 1340년 6월 23일에 일어난 슬로이스 해전에서 승리한 잉글랜드였지만, 지상전에서는 고전을 면치 못해, 그이상 전과를 올리지 못하고 2년간 휴전에 들어갔다. 그 사이 브르타뉴 계승전쟁이 시작되면서 양쪽의 대리전쟁의 양상을 보이기 시작하자, 1340년에 에드워드 3세는 플랑드르지방을 통해 프랑스를 침공하려고 했지만, 재정적 문제와 불확실한 동맹관계 때문에 침공을 포기했다. 5년후 에드워드 3세는 전쟁을 재개하여 아키텐에 더비 백작 헨리가 이끄는 군대를 보냈다. 다음해 에드워드 3세는 직접 군을 이끌고, 노르망디에 상륙하여 캉 등을 공략한 후 7월 26일 카엔 전투에서 승리한 잉글랜드군은 8월 24일 블랑셰타크 전투에서 다시 승리하였다. 이윽고 파리까지 침공하였다.
크레시 전투 배경
그러나 필리프 6세는 아키텐에서도 병사들을 불러들여 생드니에 대군을 집결시켰다. 이것을 느낀 에드워드 3세는 플랑드르로 철수하기 위해 북상을 개시했다. 프랑스군은 이를 쫓았으나, 잉글랜드군은 낮은 개천을 방위하여 프랑스군 분대를 격파하고 솜므 강을 건너는 데 성공했다. 잉글랜드군을 포위하려던 프랑스 군의 작전은 실패했고, 잉글랜드군은 전투에 유리한 지형이 있는 크레시에서 대열을 정비하고, 전투태세에 들어가 프랑스군을 기다렸다. 급히 추격해 왔던 필리프 6세는 적이 전투태세를 갖추고 기다리는 모습을 보고, 휴식을 취한 뒤 다음 날 아침에 전투를 벌일 생각을 했지만, 대군대 때문에 통제가 어려워 혼란이 발생하기 시작했기 때문에 당일 전투를 벌이기로 결정했다.
크레시 전투 전투
8월 26일 아침, 잉글랜드군은 스코틀랜드 독립전쟁에서와 마찬가지로 웨일스에서 징병한 장궁병 부대의 약점을 보완하기 위해 크레시 도시 근교의 낮은 산에 진지를 구축했다. 방어적인 진형을 짠 에드워드 3세는 모든 병사들에게 말에서 내리라고 명령했다. 에드워드 3세는 잉글랜드군 중앙에 3개의 보병대를 배치하고, 당시 16살이었던 아들 흑태자 에드워드가 그 중 한 부대를 지휘하도록 했다. 완만한 경사에 걸쳐 역V자형으로 구성된 양익에 장궁병부대를 배치하고, 공격에 약한 그들에게 기병의 돌격과 진격속도를 늦추기 위해 캘트롭과 장애물들을 전방에 깔아 놓았다. 에드워드 3세 자신은 후방에 진을 구축하고, 풍차를 지휘소로 삼았다. 후방에 위치한 언덕이 시야 확보와 안전에 좋았기 때문에, 에드워드 3세와 측근들은 그 곳에서 전투를 지휘했다.
크레시 전투 전투
정오쯤에 이르러 전장에 필리프 6세가 이끄는 프랑스군이 도착했다. 프랑스군의 기사는 자신들의 힘을 과신하고, 혈기왕성하여 무질서했고, 적을 무시했다. 필리프 6세는 통솔이 어려움을 알고, 당일 전투개시를 결정했다. 필리프 6세는 잉글랜드군의 장궁병에 대항하기 위해 제노바 노궁병들에게 전열을 맡겼고, 후열을 프랑스 기사들(중기병부대)로 채웠다.
크레시 전투 전투
선공은 프랑스군 제노바인 용병들로 구성된 노궁병들이 사격을 개시했다. 15,000명의 노궁병이 일제히 잉글랜드군의 진형을 흐트러뜨리기 위해 볼트의 소나기를 날렸다. 필리프 6세는 영국군의 사기를 꺾기 위해 악단을 데려 왔는데, 선공과 함께 우렁찬 음악이 울려 퍼졌다. 이 공격에 대해 웨일스의 자유농민들로 구성된 장궁병 부대들이 응사하기 시작해 사격전이 시작되었다. 그러나 노궁병들은 이 날의 전투에서 완전히 쓸모 없었음을 사상자로 증명했다. 이들은 1분당 3-5발의 화살을 쏠 수 있었는데, 그에 비해 영국 장궁병들은 1분에 10-20발의 화살을 쏠 수 있었다. 그것은 에드워드 1세 시대부터 시간을 들여 연습을 시켜 숙련도가 높아져 노궁에 비해 다루기 힘들던 장궁을 완벽하게 사용할 수 있었던 것이다. 게다가 행군하는 동안 노궁이 비를 맞았기 때문에 위력이 급감해 있었다.
장궁병들은 비가 오는 동안 단순히 활줄을 풀어 놓아서 이런 대참사를 피할 수 있었다. 노궁병들은 그들의 트레이드 마크인 파비스 방패도 가져오지 않았다. 보급 행렬에 방패를 놓아두고 그대로 싸운 것이다. 혼란에 빠진 채로 노궁병들은 엄청난 사상자를 낸 채 퇴각했다. 본래 사정거리나 명중률로 보면 노궁이 더 뛰어났으나, 장궁병이 윗쪽에서 아래로 사격을 퍼부었기에 지리적인 우위에 서있었기 때문이었다.
그런데 이 노궁병들을 겁쟁이라고 생각한 프랑스 군대가 도망치는 노궁병들을 죽이기 시작했다. 프루아사르에 의하면, 필리프 6세가 직접 도망자 살해를 명령했다고 한다. 잉글랜드군은 코니쉬 보병과 웨일스 보병이 진군하는 동안 계속 장궁을 쐈다. 이 사격 때문에 많은 프랑스 기사가 죽었다.
노궁병들의 한심한 짓거리를 살펴보던 프랑스 기사들이 줄을 맞춰 돌격했다. 하지만 경사와 진흙탕, 잉글랜드군이 미리 뿌려둔 장애물들이 돌격의 속도를 늦추어 위력을 감소 시켰다. 기사들이 헤매고 있는 동안 장궁병들은 화살의 커튼을 뿌렸다. 무려 16번이나 돌격 시도를 했지만 프랑스 기사들은 잉글랜드군의 전열을 전혀 흐트러뜨리지 못했다. 에드워드 3세의 아들, 흑태자 에드워드가 전투 중 위기에 처했지만 에드워드 3세는 구원병을 보내는 것을 거절했다. 나중에 그는 그것이 "자신의 아들이 분발하기를 원해서"였다고 말했다. 그 결과 흑태자는 자신이 아주 뛰어난 군인이라는 것을 증명했다.
밤이 되자, 필리프 6세는 총퇴각을 명했다. 아주 당혹스럽고 처절한 프랑스군의 패배였다.
크레시 전투 전투의 피해
이 전투의 피해는 매우 컸다.
사망자 중 프랑스 측의 중요한 귀족은 다음과 같다.
크레시 전투 결과
프랑스군이 퇴각하자 잉글랜드군은 부상자 중에서 몸값을 받을 만한 사람을 추려냈다. 부상이 심해 옮기기 어려운 기사는 미제리코르테(자비의 단검)라는 칼로 갑옷으로 보호되지 않는 겨드랑이 부분을 통해 심장을 찌르거나 바이저 틈새로 머리를 찔러 죽였다. 크레시 전투에서는 소작농이 기사를 죽였으며, 기사가 다른 기사와의 일대일 전투가 아니라 이름 모를 평민의 화살에 맞아 죽었으므로 기사도에 따른 전투가 아니었다.
크레시 전투는 잉글랜드·웨일즈 장궁병이 프랑스의 노궁병과 중무장 기사 조합보다 우수함을 증명한 전투였는데, 자유 농민이었던 장궁병은 당시의 노궁병보다 화살을 더 많이, 더 멀리 쏠 수 있었기 때문이다. 크레시 전투의 결과는 이후 상당 기간 전술에 큰 영향을 주었다. 크레시에서 승리한 에드워드 3세는 칼레를 11개월 동안 포위공격한 끝에 프랑스 북부에 교두보를 확보할 수 있었으나(칼레 포위전) 흑사병 등으로 인해 일시 휴전 협정을 맺고 본국으로 귀환했다. 1356년에 일어난 백년 전쟁의 다음 전투인 푸아티에 전투도 크레시 전투와 유사하게 전개되어 프랑스군에게 또 하나의 패배를 안겨 주었다.
퍄티나
퍄티나(러시아어: пяти́на)는 15세기-18세기에 노브고로드 공화국에 있던 구역이다. 구베르니야의 등장으로 폐지되었다.
퍄티나는 다음의 5곳이 있었다.
고급 암호화 표준
고급 암호화 표준(Advanced Encryption Standard, AES)은 2001년 미국 표준 기술 연구소(NIST)에 의해 제정된 암호화 방식이다. AES는 두 명의 벨기에 암호학자인 요안 다먼과 빈센트 레이먼에 의해 개발된 Rijndael(레인달, [rɛindaːl]) 에 기반하며 AES 공모전에서 선정되었다.
AES는 미국 정부가 채택한 이후 전 세계적으로 널리 사용되고 있다. 1977년 공표된 DES를 대체한 AES는, 암호화와 복호화 과정에서 동일한 키를 사용하는 대칭 키 알고리즘이다.
고급 암호화 표준
미국 표준 기술 연구소(NIST)는 2001년 11월 26일 AES를 미국 연방 정보 처리 표준(FIPS-197)으로 공포하였다. NIST는 5년의 표준화 과정을 거쳤으며 이 과정에서 15개의 알고리즘이 경쟁, Rijndael 암호가 가장 적합한 알고리즘으로 선정되었다. 이 표준은 2002년 5월 26일부터 효력을 발휘하기 시작했다. AES는 ISO/IEC 18033-3 표준에 포함되어 있으며 여러 암호화 패키지에서 사용되고 있다. AES는 또한 미 국가안보국에 의해 1급비밀(Top Secret)에 사용할 수 있도록 승인된 알고리즘 중 최초로 공개되어 있는 알고리즘이다.
Rijndael은 알고리즘의 개발자인 빈센트 레이먼(Vincent Rijmen)과 요안 다먼(Joan Daemen)의 이름을 따서 지은 것으로  AES 표준은 여러 Rijndael 알고리즘 중 블록 크기가 128비트인 알고리즘을 말한다.
고급 암호화 표준 개요
1997년 1월 2일 NIST(National Institute of Standards and Technology)는 DES를 대체할 목적으로 3DES와 같거나 더 나은 보안성을 갖고 개선된 암호 기법을 공모하였다. 선정될 암호의 정식 명칭은 1997년 9월 2일 AES(Advanced Encryption Standard)로 정해졌다. NIST는 암호론의 케르코프 원리(Kerckhoffs' principle, 대칭 블록)에 의해 128비트 블록을 128혹은 192혹은 256비트 키 길이로 처리할 수 있고, 무료로 배포할 수 있어야 한다는 제한 조건이 있었다. 평가 항목으로는 보안, 계산적 효율성, 메모리 요구량, 하드웨어와 소프트웨어적 적합성, 유연성 5가지를 제시하였다. 마감일인 1998년 1월 15일까지 21개의 암호 알고리즘이 제안되었고 그 중 15개 암호 알고리즘이 AES 후보로 선정되어 안전성을 평가 받았다. NIST는 15개의 암호 알고리즘에 대하여 제1차 AES 후보 대회(First AES Candidate Conference)를 1998년 8월 20일에 개최 하였고 제2차 AES 후보 대회(Second AES Candidate Conference)를 1999년 3월에 개최하였으며 이후, 1999년 8월에는 5개의 후보 알고리즘을 최종 후보로 선정하여 많은 암호학자들로부터 안전성 평가를 받게 하였다. 이 때, 남은 5개 알고리즘의 이름은 MARS, RC6, 레인달(Rijndael), Serpent, Twofish였다. 그리고 2000년 4월 3차 대회가 개최되고 2000년 10월 2일 AES 알고리즘으로 레인달을 선정하였다. 이어 NIST는 2001년 2월 28일에 연방 정보 처리 표준으로 AES를 공개/리뷰/배포 하면서 기밀성있는 정보에 DES를 대체하여 AES를 사용하기 시작한다. 2001년 11월 16일에는 표준으로 채택되었으며 2001년 12월 4일에는 FIPS 197로 등록 되었다.
고급 암호화 표준 개요
AES 선정과정에서 주목해야할 점은 개방성과 국제 흐름을 반영하였다는 점이다. 세 번의 대회와 많은 사람들(전문가/비전문가)의 의견을 공개/반영 하였으며 피드백의 기회를 부여하고 다함께 이슈에 대하여 토론하는 과정이 있었다. 뿐만 아니라 다양한 분야의 전문가들의 의견이 반영 되었다. 수학자, 컴퓨터 학자, 암호학자, 공학자등 다양한 분야의 전문가들이 의견을 적극적으로 반영하여 안전하면서도 훌륭한 성능을 갖춘 알고리즘을 선택할 수 있었다. 국제화 측면에서 AES는 15개의 후보 알고리즘의 저자들의 국적 만큼이나 다양한 국가의 평가를 받았다. 당시 알고리즘 안전성 평가에 적극적이었던 국가로는 대한민국을 비롯하여 일본, 이스라엘, 독일, 프랑스, 코스타리카, 캐나다, 벨기에, 호주, 노르웨이, 영국, 미국이 있었다. 레인달은 Daemen과 Rijmen이라는 두 명의 벨기에 연구원에 의해 설계되었다. AES 선정과정에서 재밌는 점 중 다른 하나는 2차 대회가 미국이 아닌 이탈리아 로마에서 개최되었다는 점이다. AES 후보 알고리즘들은 다음과 같은 세가지 조건을 만족해야 했다.
고급 암호화 표준 개요
"안전성"은 절대적으로 갖춰야 하는 부분이었으며 특히 당시 대칭키 암호를 분석하는 방법인 '선형 공격(linear cryptanalysis)'과 '차분 공격(Differential cryptanalysis)'에 대한 안전성 증명이 주를 이루었다.
"비용"은 '스마트 카드, 하드웨어, 소프트웨어, 구현'을 위한 다양한 형태의 계산효율성(computational efficiency)을 참고하여 평가 되었다. 여기서 계산효율성이라고 하는 것은 속도 및 메모리 요구량(speed and memory requirement)등을 의미 하였다.
고급 암호화 표준 개요
"알고리즘 및 구현 특성"은 유연성(Flexibility)과 알고리즘의 단순성(simplicity)을 주로 평가 하였다.
마지막 평가과정에서 남았던 5개의 알고리즘 중 4개의 알고리즘은 탈락했지만 안전성이 떨어지는 알고리즘은 절대 아니였다.
다만 Rijndael의 알고리즘이 안전성, 속도, 효율성, 구현 및 유연성이 다른 알고리즘들 보다 우수했을 뿐이다.
고급 암호화 표준 알고리즘 개요
이 구조에서 주목할 만한 특징 중 하나는 이 구조가 파이스텔 구조가 아니라는 것이다. 전형적인 파이스텔 구조를 떠올려 보면 데이터 블록 반쪽을 다른 반쪽을 수정하는 데 사용했고 그 두 반쪽을 교환하였다. AES는 파이스텔 구조를 사용하지 않고 각 라운드에서 대체(substitution)와 치환(permutation)을 이용해서 데이터 블록 전체를 병렬 처리한다.
바이트 대체(Substitute bytes): S-box라는 표를 이용하여 바이트 단위(byte-to-byte) 형태로 블록을 교환한다.
행 이동(Shift rows) : 단순히 행과 행을 치환한다.
열 섞기(Mix columns) : 열에 속한 모든 바이트를 순환 행렬을 사용해 함수로 열에 있는 각 바이트를 대체하여 변화시킨다.
라운드 키 더하기(Add round key) : 확장된 키의 일부와 현재 블록을 비트별로 XOR한다.
고급 암호화 표준 알고리즘 개요
라운드 키 더하기 단계는 그 자체가 강력하지 못대는 대신 다른 세 단계와 같이 작동하여 비트를 뒤섞는 역할을 한다. 하지만 각각은 키를 사용하지 않으므로 보안성을 제공하는 것은 아니다. 이 암호 단계를 살펴보면 블록에 XOR 암호화(라운드 키 더하기)를 하고, 그 다음 블록을 뒤섞고(다른 세 단계), 그 뒤에 다시 XOR 암호화를 하는 것으로 이를 번갈아서 적용하는 것을 볼 수 있다. 이 구조는 효과적이고 보안성을 매우 강화시킨다.
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
Subbyte&Mixcolumns을 8*32 table 4개로 구현한다. 32비트 수 4개가 입력으로 들어왔을 때 1개의 수 x = (a<<24)+(b<<16)+(c<<8)+d라고 했을 때 이를 행렬로 표현하면  이며 순환행렬을 곱해서 다시 32비트 수로 변환하게 되면 행렬곱을 이용해서 ((2*a+3*b+1*c+1*d)<<24)+((1*a+2*b+3*c+1*d)<<16)+((1*a+1*b+2*c+3*d)<< 8)+(3*a+1*b+1*c+2*d)가 된다. 이때 곱하기는 갈루아 필드에서의 다항식 곱셈연산이 된다. table을 4개 생성을 하고 각 테이블에는 a,b,c,d를 입력받는다.
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
Table0생성 : 입력받은 a에 Subbyte연산을 수행하면 Sbox[a]가 된다. ((2*Sbox[a])<<24)+((1*Sbox[a])<<16)+((1*Sbox[a])<<8)+3*Sbox[a]연산을 하여 출력한다.
Table1생성 : 입력받은 b에 Subbyte연산을 수행하면 Sbox[b]가 된다. ((3*Sbox[b])<<24)+((2*Sbox[b])<<16)+((1*Sbox[b])<<8)+1*Sbox[b]연산을 하여 출력한다.
Table2생성 : 입력받은 c에 Subbyte연산을 수행하면 Sbox[c]가 된다. ((1*Sbox[c])<<24)+((3*Sbox[c])<<16)+((2*Sbox[c])<<8)+1*Sbox[c]연산을 하여 출력한다.
Table3생성 : 입력받은 d에 Subbyte연산을 수행하면 Sbox[d]가 된다. ((1*Sbox[d])<<24)+((1*Sbox[d])<<16)+((*Sbox[d])<<8)+3*Sbox[d]연산을 하여 출력한다.
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
Subbyte&Mixcolumns연산을 끝낸 32비트 x는 Table0[x>>24] ^ Table1[(x>>16)&0xff] ^ Table2[(x>>8)&0xff] ^ Table3[x&0xff]이 된다.
위와 같이 TABLE을 이용하여 암호화 구현시에는 Sbox표를 입력해놓을 필요가 없다. 순환행렬에서의 1을 이용하여 Table1결과값(((3*sbox[b])<<24)+((2*sbox[b])<<16)+((1*sbox[b])<<8)+1*sbox[b])에 LSB에서부터 8비트(1*sbox[b])만 이용하면 Sbox와 동일한 값이 된다. 하지만 복호화 구현시에는 복호화 Mixcolumn 수행 시 사용되는 순환행렬에는 1이 없기 때문에 InvSbox표가 필요하다.
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
복호화 수행 시 동일한 방법으로 Table 4개를 생성한다. 이때 복호화는 한 라운드가 Addroundkey -> InvMixcolumns -> InvShiftrows -> InvSubbyte 식으로 수행이 된다. 이때 첫번째와 마지막 복호화키를 제외한 복호화키에 InvMixcolumn연산을 해주면 InvSubbyte -> InvShiftrows -> InvMixcolumns -> Addroundkey 방법으로 구현이 가능하다.
InvSubbyte&InvMixcolumns을 8*32 table 4개로 구현한다. 32비트 수 4개가 입력으로 들어왔을 때 1개의 수 x = (a<<24)+(b<<16)+(c<<8)+d라고 했을 때 이를 행렬로 표현하면  이며 순환행렬을 곱해서 다시 32비트 수로 변환하게 되면 행렬곱을 이용해서 ((14*a+11*b+13*c+9*d)<<24)+((9*a+14*b+11*c+13*d)<<16)+((13*a+9*b+14*c+11*d)<< 8)+(11*a+13*b+9*c+14*d)가 된다. 이때 곱하기는 갈루아 필드에서의 다항식 곱셈연산이 된다. table을 4개 생성을 하고 각 테이블에는 a,b,c,d를 입력받는다.
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
Table0생성 : 입력받은 a에 Invsubbyte연산을 수행하면 InvSbox[a]가 된다. ((14*InvSbox[a])<<24)+((9*InvSbox[a])<<16)+((13*InvSbox[a])<<8)+11*InvSbox[a]연산을 하여 출력한다.
Table1생성 : 입력받은 b에 Invsubbyte연산을 수행하면 InvSbox[b]가 된다. ((11*InvSbox[b])<<24)+((14*InvSbox[b])<<16)+((9*InvSbox[b])<<8)+13*InvSbox[b]연산을 하여 출력한다.
Table2생성 : 입력받은 c에 Invsubbyte연산을 수행하면 InvSbox[c]가 된다. ((13*InvSbox[c])<<24)+((11*InvSbox[c])<<16)+((14*InvSbox[c])<<8)+9*InvSbox[c]연산을 하여 출력한다.
Table3생성 : 입력받은 d에 subbyte연산을 수행하면 InvSbox[d]가 된다. ((9*InvSbox[d])<<24)+((13*InvSbox[d])<<16)+((11*InvSbox[d])<<8)+14*InvSbox[d]연산을 하여 출력한다.
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
InvSubbyte&InvMixcolumns연산을 끝낸 32비트 x는 Table0[x>>24] ^ Table1[(x>>16)&0xff] ^ Table2[(x>>8)&0xff] ^ Table3[x&0xff]이 된다.
Table 생성 결과#include<stdio.h>
typedef unsigned int uint;

uint Table0_enc[256] = {
	0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x2010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a,
	0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f,
	0x804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0xa05050f, 0x2f9a9ab5, 0xe070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f,
	0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0xa65353f5, 0xb9d1d168, 0x0, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a,
	0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x4020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3,
	0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x58f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395,
	0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0xb888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76,
	0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0xc06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x18d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818,
	0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0xd8b8b86, 0xf8a8a85,
	0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x6030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x78e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a,
	0x38c8c8f, 0x59a1a1f8, 0x9898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a
};
uint Table1_enc[256] = {
	0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0xdfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x3020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0xbfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0,
	0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x2f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x8f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515,
	0xc080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0xf0a0505, 0xb52f9a9a, 0x90e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484,
	0xf5a65353, 0x68b9d1d1, 0x0, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf,
	0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x6040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x4f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0xefdf3f3, 0x6dbfd2d2,
	0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373,
	0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0xa0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979,
	0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x7f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808,
	0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x5060303, 0x1f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e,
	0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf,
	0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616
};
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
uint Table2_enc[256] = {
	0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x1030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76,
	0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15,
	0x40c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x50f0a05, 0x9ab52f9a, 0x7090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75,
	0x91b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0x53f5a653, 0xd168b9d1, 0x0, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf,
	0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x2060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8,
	0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0xcd4c81cd, 0xc14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673,
	0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0xb1d160b, 0xdb76addb,
	0xe03bdbe0, 0x32566432, 0x3a4e743a, 0xa1e140a, 0x49db9249, 0x60a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x8181008,
	0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a,
	0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x3050603, 0xf601f7f6, 0xe121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df,
	0x8c8f038c, 0xa1f859a1, 0x89800989, 0xd171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0xf111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16
};
uint Table3_enc[256] = {
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x1010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec,
	0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b,
	0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0x4040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x5050f0a, 0x9a9ab52f, 0x707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea,
	0x9091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713,
	0x5353f5a6, 0xd1d168b9, 0x0, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x2020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b,
	0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf,
	0xcdcd4c81, 0xc0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0xb0b1d16, 0xdbdb76ad,
	0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0xa0a1e14, 0x4949db92, 0x6060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2,
	0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x8081810,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f,
	0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x3030506, 0xf6f601f7, 0xe0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927,
	0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0x8c8c8f03, 0xa1a1f859, 0x89898009, 0xd0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0xf0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c
};
uint Table0_dec[256] = {
	0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f,
고급 암호화 표준 AES 최적화(Table을 이용하는 방법)
	0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x38f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844,
	0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94,
	0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x2036aba, 0xed16825c,