Nghiên cứu và xây dựng một thuật toán mã hóa thông điệp nhờ kết hợp giữa mật mã chuyển vị và mật mã VIGENERE

70 310 0
Nghiên cứu và xây dựng một thuật toán mã hóa thông điệp nhờ kết hợp giữa mật mã chuyển vị và mật mã VIGENERE

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trng i hc Dõn l p H i Phũng Bộ giáo dục đào tạo Tr-ờng đại học dân lập hải phòng -o0o - đồ án tốt nghiệp Ngành công nghệ thông tin Hải Phòng 2015 c Anh- CT1501 Trng i hc Dõn l p H i Phũng Bộ giáo dục đào tạo Tr-ờng đại học dân lập hải phòng -o0o - Nghiên cứu xây dựng thuật toán mã hóa thông điệp nhờ kết hợp mật mã chuyển vị mật mã vigenere đồ án tốt nghiệp đại học hệ quy Ngành: Công nghệ Thông tin c Anh- CT1501 Trng i hc Dõn l p H i Phũng Bộ giáo dục đào tạo Tr-ờng đại học dân lập hải phòng -o0o - Nghiên cứu xây dựng thuật toán mã hóa thông điệp nhờ kết hợp mật mã chuyển vị mật mã vigenere đồ án tốt nghiệp đại học hệ quy Ngành: Công nghệ Thông tin Sinh viên thực hiện: Vũ Ngọc Anh Giáo viên h-ớng dẫn: TS.Hồ Văn Canh Mã số sinh viên: 1112101003 c Anh- CT1501 Trng i hc Dõn l p H i Phũng , cho em e ! nm 2015 Sinh viờn c Anh- CT1501 Trng i hc Dõn l p H i Phũng PHN M U CHNG I : CC H MT M C IN 1.1 M u : 1.2 Mó dch chuyn 1.3 Mó thay th 1.4 Mó Apphin 1.5 Mó Vigenere 10 1.5.1 nh ngha: Mó Vigenere(( P , C , K , E , D) 10 1.5.2 Vớ d : Cho Khúa k l t CIPHER , 10 1.6 Mó Hill 12 1.7 Mó chuyn v 14 1.7.1 nh ngha 14 1.7.2 Vớ d : 15 CHNG : H mt 18 18 18 2.1.2 Phng phỏp mó húa : 18 2.1.3 Phng phỏp gii mó : 19 2.1.4 Phõn tớch,ỏnh giỏ : 20 2.2 23 2.2.1 nh ngha : 23 2.2.2 Phng phỏp mó húa 23 2.2.3 Phng phỏp gii mó 24 2.2.4 Phõn tớch , ỏnh giỏ 26 27 3.1 S kt hp hai mó chuyn v v mó Vigenere 27 3.1.1 Lý thuyt : 27 c Anh- CT1501 Trng i hc Dõn l p H i Phũng 3.1.2 Mó húa 27 3.1.3 Gii mó 27 3.2 Chng trỡnh Demo 28 3.3 Mó ngun 30 62 63 64 c Anh- CT1501 Trng i hc Dõn l p H i Phũng PHN M U Cỏc h mt mó c in chớnh l dng ca h mt mó khúa i xng Mó khúa i xng c dựng ch cỏc h mó m ú, bit khúa lp mó ta cú th tỡm c khúa gii mó mt cỏch d dng (vỡ vy ngi ta thng coi chỳng l mt), ng thi vic gii mó cng ũi hi thi gian nh vic lp mó Cỏc h mó thuc loi ny cú thi gian lp mó v gii mó tng i nhanh vỡ th cỏc h mó i xng thng c s dng mó húa nhng d liu ln Nhng cỏc h mó i xng yờu cu phi gi mt hon ton v khúa lp mó Nu i phng bit khúa lp mó thỡ coi nh tht bi Sau õy em xin gii thiu ụi nột v vic cn thit mó húa thụng tin: Hin tin hc ó c ỏp dng vo hu ht cỏc lnh vc cuc sng v cú mt nh hng rt ln i vi s tn ti v phỏt trin ca cỏc ngnh khoa hc khỏc Trong mi h thng tin hc, thụng tin luụn l thnh phn c bn nht v quan trng nht Chỳng ta khụng m khụng gp phi nhng trng hp mỏy tớnh b mt ht nhng thụng tin quan trng nhiu nguyờn nhõn khỏc nh b virus, b h hng thit b, khụng bit s dng, b ỏnh cp hay xoỏ thụng tin Núi chung an ton v bo mt thụng tin rt a dng v ph thuc vo nhiu yu t ch quan v khỏch quan khỏc nh: ngi, mụi trng, cụng ngh Hin cú rt nhiu cụng c v phn mm h tr an ton cho h thng mỏy tớnh Tuy nhiờn ỏnh giỏ v chn la mt h thng an ton rt phc v ch mang tớnh tng i bi vỡ mt h thng c ỏnh giỏ l rt an ton hụm cú th khụng cũn an ton na vo ngy mai Nu chỳng ta thng xuyờn theo dừi cỏc thụng tin bo mt trờn Internet, chỳng ta cú th thy thụng tin v nhng l hng bo mt ca cỏc h iu hnh, cỏc phn mm bo mt, cỏc dch v Vỡ vy an ton v bo mt thụng tin l mt nhng thnh phn quan trng nht cn c quan tõm vic trỡ v phỏt trin ca h thng SVTH: V Ngc Anh- CT1501 Trang Trng i hc Dõn l p H i Phũng Mt mó v an ton thụng tin ? Mt mó (Cipher) ó xut hin cỏch õy khong 4000 nm ti Ai cp Khi m cỏc cuc chin tranh xy gia cỏc ch Thụng tin ca bờn A di dng ch cỏi (letter), ch s (number) hay loi no ú trc c gi i s c mó hoỏ Bờn B nhn c thụng tin mó hoỏ ny thc hin vic gii mó hiu c ni dung Mt ngi ly c bn mó cng khú cú th hiu c ni dung ca thụng tin vỡ ch cú A v B mi cú cỏch gii mó Thi kỡ ny cỏc thụng tin c bo mt bng cỏc phng phỏp khỏc nhau, hay cũn gi l cỏc h mt mó c in Cỏc h mt mó sm nht c bit n nh mt mó Ceazar - mó dich chuyn (Shift Cipher), mó th (Substitution Cipher) Cỏc h mt mó ny c s dng mt thi gian di Cho n toỏn hc phỏt trin Cỏc h mó mi c xõy dng trờn cỏc lý thuyt v toỏn hc hin i Mt th h mt mó c xõy dng da trờn phc tớnh toỏn, cỏc h mt mó ny c gi l cỏc h mó hin i Cỏc ng dng ca cỏc h mt mó ngy cng c ỏp dng nhiu lnh vc xó hi Giỳp gii qut hng lot cỏc v an ton thụng tin trờn cỏc kờnh thụng tin khụng bo mt Mt mó cung cp mt gii phỏp nhm mc ớch thc hin bin mt thụng tin c th d hiu thnh mt dng khỏc (khú hiu) cú quan h cht ch vi thụng tin gc Gi õy ta gi thụng tin cha mó hoỏ (tng minh) l bn rừ, v thụng tin sau c mó hoỏ l bn mó Vy mt mó l gỡ ? Ti nú li bo v c mt thụng tin ? C s ca nú l gỡ ? nh ngha : Mt mó hc l s nghiờn cu cỏc phng phỏp toỏn hc liờn quan n mt s khớa cnh ca thụng tin nh s an ton, s ton d liu, s xỏc nhn tn ti v s xỏc nhn tớnh nguyờn bn ca thụng tin Sau õy em xin ln lt gii thiu mt mó c in : SVTH: V Ngc Anh- CT1501 Trang Trng i hc Dõn l p H i Phũng CHNG I : CC H MT M C IN 1.1 M u : Mong mun c trao i thụng tin mt cỏch mt l mt nhng ũi hi ca ngi xut hin t rt sm lch s Vỡ th lch s ca vic trao i thụng tin mt rt phong phỳ v bao gm nhng phỏt minh c ỏo mang y tớnh giai thoi Ngnh hc nghiờn cu cỏch thc che du thụng tin i vi nhng i tng khụng mong mun gi l mt mó hc ( cryptography) Mt mó (cipher) c dựng bo v mt ca thụng tin thụng tin c truyn trờn cỏc kờnh thụng tin bo mt nh th tớn ,in thoi,mng truyn thụng mỏy tớnh - Ngi A mun gi cho ngi B mt bn bng ting Vit ( gi l bn rừ ) , mun c bo mt thỡ A phi lp mt mó cho bn rừ ú gi l bn mó v gi bn mó ny cho B A v B cú mt khúa mt mó chung, va A lp bn mó , va B gii bn mó thnh bn rừ Mt ngi khỏc khụng cú khúa ú thỡ dự cú ly c bn mó t kờnh truyn tin cng khụng th bin thnh bn rừ hiu c ni dung thụng bỏo m A gi cho B - Cỏc h mt mó c in thc hin vic bo mt ú u dựng mt khỏo chung cho vic lp mó v gii mó, cỏc bn rừ v bn mó thng dựng c s l bn ch t nhiờn, c th l ta s dựng 26 ch cỏi bn ch cỏi ting Anh hiu rừ hn em s dựng quan nim toỏn hc mụ t hỡnh thc hn nh ngha : Mt h mt mó l mt b nm ( P , C , K , E , D) tha cỏc iu kin sau õy: P l mt hu hn cỏc bn rừ C l mt hu hn cỏc bn mó K l mt hu hn cỏc khúa SVTH: V Ngc Anh- CT1501 Trang Trng i hc Dõn l p H i Phũng Vi mi k K , cú mt hm lp mó ek E ,sao cho ek : P -> C, v mt hm gii mó dk D , dk : C -> P cho dk(ek(x)) = x vi mi x P Trong thc t , P v C thng l bng ch cỏi ( hoc cỏc dóy ch cỏi cú di c nh) Nu bn rừ l (mt xõu ch cỏi): x = x1x2x3xn (xi P ), v khoỏ l k K thỡ bn mó s l: y = y1y2y3yn (yi C ) Trong ú yi = ek(xi) (1 i n) Nhn c bn mó y, bit khoỏ k, s tỡm c bn rừ x, vỡ xi = dk(yi) Sau õy thay cho bng ch cỏi A, B, C,,X, Y, Z ta s dựng cỏc s 0, 1, 2,, 24, 25 v dựng cỏc phộp toỏn s hc theo modulo 26 din t cỏc phộp bin i trờn bng ch cỏi A B C D E F G H I J K L 10 11 12 13 O P Q R S T U V W X M N Y Z 14 15 16 17 18 19 20 21 22 23 24 25 1.2 Mó dch chuyn Kớ hiu Z m l cỏc s nguyờn t n (m-1), ký hiu ú cng dựng cho vnh cỏc s nguyờn t n (m-1) vi cỏc phộp cng v nhõn vi modulo m Nh vy, bng ch cỏi ting Anh cú th xem l mt vnh Z26 vi s tng ng k trờn SVTH: V Ngc Anh- CT1501 Trang Trng i hc Dõn l p H i Phũng } private void initComponents() { tf_vigenere = new javax.swing.JTextField(); tf_chuyenvi = new javax.swing.JTextField(); bt_giaima = new javax.swing.JButton(); bt_xoa = new javax.swing.JButton(); bt_thoat = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); ta_banma = new javax.swing.JTextArea(); jScrollPane2 = new javax.swing.JScrollPane(); ta_banro = new javax.swing.JTextArea(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Gii mó thụng tin"); setBounds(new java.awt.Rectangle(500, 200, 0, 0)); setResizable(false); tf_vigenere.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N tf_chuyenvi.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N bt_giaima.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N bt_giaima.setForeground(new java.awt.Color(0, 0, 204)); bt_giaima.setText("Gii mó"); bt_giaima.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { SVTH: V Ngc Anh- CT1501 Trang 50 Trng i hc Dõn l p H i Phũng bt_giaimaActionPerformed(evt); } }); bt_xoa.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N bt_xoa.setForeground(new java.awt.Color(0, 0, 204)); bt_xoa.setText("Xúa"); bt_xoa.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bt_xoaActionPerformed(evt); } }); bt_thoat.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N bt_thoat.setForeground(new java.awt.Color(0, 0, 204)); bt_thoat.setText("Thoỏt"); bt_thoat.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bt_thoatActionPerformed(evt); } }); jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N jLabel1.setForeground(new java.awt.Color(0, 0, 255)); jLabel1.setText("Khúa Vigenere"); jLabel2.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N jLabel2.setForeground(new java.awt.Color(0, 0, 255)); jLabel2.setText("Bn mó"); ta_banma.setColumns(20); SVTH: V Ngc Anh- CT1501 Trang 51 Trng i hc Dõn l p H i Phũng ta_banma.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N ta_banma.setRows(5); jScrollPane1.setViewportView(ta_banma); ta_banro.setColumns(20); ta_banro.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N ta_banro.setForeground(new java.awt.Color(204, 0, 0)); ta_banro.setRows(5); jScrollPane2.setViewportView(ta_banro); jLabel4.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N jLabel4.setForeground(new java.awt.Color(0, 0, 255)); jLabel4.setText("Bn rừ"); jLabel5.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N jLabel5.setForeground(new java.awt.Color(0, 0, 255)); jLabel5.setText("Khúa chuyn v"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) addGroup(layout.createSequentialGroup() addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD ING) addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE) addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELAT ED) SVTH: V Ngc Anh- CT1501 Trang 52 Trng i hc Dõn l p H i Phũng addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 340, javax.swing.GroupLayout.PREFERRED_SIZE)) addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() addContainerGap() addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELAT ED) addComponent(tf_vigenere, javax.swing.GroupLayout.PREFERRED_SIZE, 340, javax.swing.GroupLayout.PREFERRED_SIZE)) addGroup(layout.createSequentialGroup() addContainerGap() addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELAT ED) addComponent(tf_chuyenvi, 340, Short.MAX_VALUE)) javax.swing.GroupLayout.DEFAULT_SIZE, addGroup(layout.createSequentialGroup() addGap(18, 18, 18) addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L EADING) addGroup(layout.createSequentialGroup() addComponent(bt_giaima) addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELA TED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) addComponent(bt_xoa, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE) addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELA TED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) SVTH: V Ngc Anh- CT1501 Trang 53 Trng i hc Dõn l p H i Phũng addComponent(bt_thoat, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)) addGroup(layout.createSequentialGroup() addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE) addGap(18, 18, 18) addComponent(jScrollPane2))))) addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) addGroup(layout.createSequentialGroup() addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD ING) addGroup(layout.createSequentialGroup() addContainerGap() addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE)) addGroup(layout.createSequentialGroup() addGap(50, 50, 50) addComponent(jLabel2))) addGap(18, 18, 18) addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASE LINE) addComponent(tf_vigenere, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) addComponent(jLabel1)) addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, Short.MAX_VALUE) SVTH: V Ngc Anh- CT1501 15, Trang 54 Trng i hc Dõn l p H i Phũng addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD ING, false) addGroup(layout.createSequentialGroup() addGap(1, 1, 1) addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) addComponent(tf_chuyenvi, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) addGap(28, 28, 28) addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD ING) addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) addComponent(bt_giaima) addComponent(bt_thoat)) addComponent(bt_xoa, javax.swing.GroupLayout.Alignment.TRAILING)) addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD ING) addGroup(layout.createSequentialGroup() addGap(18, 18, 18) addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE)) addGroup(layout.createSequentialGroup() addGap(52, 52, 52) addComponent(jLabel4))) addGap(57, 57, 57)) ); pack(); }// SVTH: V Ngc Anh- CT1501 Trang 55 Trng i hc Dõn l p H i Phũng private String chuoi="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; public String getChuoi() { return chuoi; } public void setChuoi(String chuoi) { this.chuoi = chuoi; } // -public int[] mang_chiso(String s){ char[] s_s = s.toCharArray(); int[] x = new int[s.length()]; for (int i = 0; i < s.length(); i++) { x[i] = getChuoi().indexOf(s_s[i]); } return x; } // -public String chiso_chuoi(int[] a){ String s = ""; char[] chuyen_chuoi = getChuoi().toCharArray(); for (int i = 0; i < a.length; i++) { s += chuyen_chuoi[a[i]]; } return s; } // public String giaima_vigenere(String banma,String khoa){ SVTH: V Ngc Anh- CT1501 Trang 56 Trng i hc Dõn l p H i Phũng banma = banma.toUpperCase(); khoa = khoa.toUpperCase(); String x=""; int[] y = new int[banma.length()]; int[] k = new int[banma.length()]; int[] kq = new int[banma.length()]; y = mang_chiso(banma); k = mang_chiso(khoa); int i,j; for(i=0,j=0;i

Ngày đăng: 05/11/2016, 21:46

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan