Hệ mã công khai RSA và ứng dụng bảo mật trong trao đổi tài liệu lâm sàng CDA (Luận văn thạc sĩ)Hệ mã công khai RSA và ứng dụng bảo mật trong trao đổi tài liệu lâm sàng CDA (Luận văn thạc sĩ)Hệ mã công khai RSA và ứng dụng bảo mật trong trao đổi tài liệu lâm sàng CDA (Luận văn thạc sĩ)Hệ mã công khai RSA và ứng dụng bảo mật trong trao đổi tài liệu lâm sàng CDA (Luận văn thạc sĩ)Hệ mã công khai RSA và ứng dụng bảo mật trong trao đổi tài liệu lâm sàng CDA (Luận văn thạc sĩ)Hệ mã công khai RSA và ứng dụng bảo mật trong trao đổi tài liệu lâm sàng CDA (Luận văn thạc sĩ)Hệ mã công khai RSA và ứng dụng bảo mật trong trao đổi tài liệu lâm sàng CDA (Luận văn thạc sĩ)Hệ mã công khai RSA và ứng dụng bảo mật trong trao đổi tài liệu lâm sàng CDA (Luận văn thạc sĩ)Hệ mã công khai RSA và ứng dụng bảo mật trong trao đổi tài liệu lâm sàng CDA (Luận văn thạc sĩ)Hệ mã công khai RSA và ứng dụng bảo mật trong trao đổi tài liệu lâm sàng CDA (Luận văn thạc sĩ)
IH NG IH C NGUY N H I NINH NG D NG B O M T H LU - 2016 S c li u http://www.lrc.tnu.edu.vn L IC ct n li n v i nh ng s h tr uc t th i gian t b t pt c r t nhi u s Th uh c c c nh t, em xin g i l i c - Em xin g i l i c ki n th iH i TS Nguy o, th y b o m t, v h d ng lu h Em xin g i l i c K t y cho em nh ng i TS Nguy n H i Minh iH n ng d n em th i gian th c hi il ic em l p CK13C Qu ng Ninh, c ng nghi p t ng h u ki t th i gian h c t p Do th nh ng thi Th n lu Em r t mong nh n i c nh c H th c hi n Nguy n H i Ninh S c li u http://www.lrc.tnu.edu.vn L Nguy n H i Ninh p Cao h c K13C iH , hi u Qu ng Ninh Trong th H is n t nghi ng d ng b o m , ng d n khoa h c c a TS Nguy n H i Minh i dung b n lu u, u i dung tham kh o nh cl H c c hi n Nguy n H i Ninh S c li u http://www.lrc.tnu.edu.vn M CL C Trang L IC i L iii M C L C iv DANH M NG .vi DANH M NH .vii M U 1 CHU .2 CLINICAL DOCUMENT ARCHITECTURE 1.1 Gi i thi u chung 1.1.1 M t k chu u CDA [3] .2 tc am 1.2 C u CDA .3 u CDA 1.2.1 C u CDA 1.2.2 C u CDA 1.2.3 C a m t Entry 14 u d li u - HL7 Reference Information Model(RIM) 19 1.3.1 M t s m quan tr .19 1.3.2 HL7 V3 Data Types 20 v ng HL7 Vocbulary Domains .20 sinh m u CDA 21 1.5 M t s c s d ng vi c g n u CDA N TH u .22 t IE .26 NV H .27 2.1 Gi i thi u chung .27 mh m .27 2.1.2 H m 2.2 H S .29 30 c li u http://www.lrc.tnu.edu.vn ng RSA 30 ng t 2.2.3 M t s m t RSA .31 ng v RSA .37 mc ah m K T QU 39 .41 c s d ng b nh vi n 41 3.1.1 N i dung h ng .41 b 45 ng d ng H 3.2.1 53 ng d ng thu A 53 ng d ng H CDA .54 u CDA 56 3.3.1 D li .56 57 u CDA d .58 3.3.4 Module gi u 59 3.3.5 Giao di 60 n Header ho c Body 61 3.4.1 Thu n Header ho c Body 61 3.4.2 Thu n Header ho c Body 62 c Body 63 3.5 M t s Modules c 63 3.5.1 Module RSA 63 3.5.2 Module ReadDOM 63 3.5.3 M t s v K T LU qu 64 N NGH 65 U THAM KH O .66 S c li u http://www.lrc.tnu.edu.vn DANH M B B ng 1.2: Quan h NG a Header p Header B ng 1.3: C u CDA .8 B a Section B ng c a Section B c a Section B B tr nh d ng .13 ng tham gia m t Entry 15 B ng 1.9: Quan h m t Entry 17 B ng 1.10: Quan h entry-Entry Relationships 18 B 22 B ng 1.12: Di n gi i B 24 ct B ng 3.1: C S a H RSA .34 b c li u .47 http://www.lrc.tnu.edu.vn DANH M NH u CDA [3] u CDA 21 gi u CDA 22 .28 ps d 29 ps d i nh n 30 ps d t S .39 ps d gi gi t S .39 thu 54 u CDA .55 u CDA d ng XML 56 u CDA 57 58 u CDA 59 60 n Header ho c Body 61 n Header ho c Body .62 u CDA 63 S c li u http://www.lrc.tnu.edu.vn M U ng d ng r t l bi n r ng n di n m o c th c hi is i, kinh t M nh cc c t xa v i s h tr c ng Internet T t c th ng m ng Trong y t , vi c ng d c kh ng, r t nhi d ng h tr vi c qu qu o hi a b nh t th ng h tr qu n b om m t vi c c n thi b ib Trong ph uc uc chu ,h ng d ng vi u CDA c a b nh nh hai m c: Ph n Header c a c c section n m component thu c ph n Body K t qu c a b nh us n s khoa h i nh n u a, k t qu mb ng t i vi ckhi g i i nh n m u u c i nc chu n qu c t nh b i t ch c xu t d ng h yt S , gi v c li u ng Internet http://www.lrc.tnu.edu.vn gi i CHU CLINICAL DOCUMENT ARCHITECTURE 1.1 Gi i thi u chung Chu chu ch yt n t k ph m m m, ph n c ng v c c am im yt tr vi c trao ch c thu n ti ng truy b n CDA Release nh n Qu c t n CDA Release (CDA i American National Standards Institute/ Health Level Seven International (ANSI/HL7) V i s b i vi c c p nh n v thi t k c li u (Data type), lo i b , b sung m t s thu g n k t ch t ch v d c i chu n n LOINC, chu n SMOMED- v cb v ng CNE t m t nhi u so v i v ng th c th hi n m 1.1.1 M t k chu u CDA [3] nh vi c kh e Mang l i hi u qu vi c tri th s th Vi c m v S n th n n m m hi c li u li m vi l n gi i h n b i s d ng gi http://www.lrc.tnu.edu.vn n i gian h th th nt nt c t o b Vi ng d ng thu h t ng ho c h th tr Cung c p m t thi t k h p i ng d ng i nh ng nhu c vi nh u 1.1.2 tc am u CDA M c thi t k d u CDA s ch t sau: n - Persistence: M tr u CDA ti p t cb ot n nv c ng th i gian u truy v is d - Stewardship: M n ph li u nh t, b p n b i m t t ch th m quy n c - Potential for authentication: M h t p ch ng th i c nh - Context: M n ph i ch cb i c nh v i n i dung c - c ph i ch ng cho ng ph n c li u S c li u http://www.lrc.tnu.edu.vn PH L C public class myDOM { public static String fileSourceInput = "books.xml"; public static ArrayList listRootValue, listNode1Value, listNode2Value, listNode3Value, listNode4Value, listNode5Value, listNode6Value, listNode7Value, listNode8Value; public static ArrayList listRoot, listNode1, listNode2, listNode3, listNode4, listNode5, listNode6, listNode7, listNode8; public static Element root; public static Document document; public static String fileSourceOut="docSave.xml"; // t o jdom document public static org.jdom.Document openFileSource(String fileName) { try { // Create a builder factory SAXBuilder builder = new SAXBuilder(); //jdomDoc = builder.build(new FileInputStream(xmlFile)); org.jdom.Document jdomDoc; jdomDoc = builder.build(new FileInputStream(fileName)); return jdomDoc; } catch (Exception e) { e.printStackTrace(); System.out.print(e); return null; } } S c li u http://www.lrc.tnu.edu.vn public static void saveMyCDA(String desFileName, org.jdom.Document CDABuffer) { try { XMLOutputter outputter = new XMLOutputter(); outputter.output(CDABuffer, new FileOutputStream(desFileName)); System.out.println("Done !!!"); } catch (Exception e) { e.printStackTrace(); System.out.println("Fail !!!"); JOptionPane.showConfirmDialog(null, e.getMessage()); } return; } // thay th thu public static void replaceTheAttribute(Element currentElement, String attributeName, String newValue) { currentElement.setAttribute(attributeName, newValue); } // thay th m c a element public static void replaceTheContext(Element currentNode, String newValue) { try { currentNode.setText(newValue); } catch (Exception e) { JOptionPane.showMessageDialog(null, "not write !!!"); S c li u http://www.lrc.tnu.edu.vn } } public RSA() { private_key = new Key(); public_key = new Key(); } public byte IndexInBase64(char c) { byte i; for(i = 0; i < 64; i++) if(base64.charAt(i) == c) break; return i; } public void CreateKey(int p, int q) { if(p == q) return; long n = p * q; long phi = (p - 1) * (q - 1); //calculate number e long e = phi / 2; long d = 0; Euclid ecl = new Euclid(); while(e > 3) { S c li u http://www.lrc.tnu.edu.vn if(ecl.GCD(e, phi) == 1) { d = ecl.ModReserve(e, phi); if(d > && e != d && d < phi) break; } e ; } if(e < 4) { e = phi / - 1; while(e < phi) { if(ecl.GCD(e, phi) == 1) { d = ecl.ModReserve(e, phi); if(d > && e != d && d < phi) break; } e++; } if(e >= phi) { e = 0; d = 0; n = 0; } } public_key.setM(e); public_key.setN(n); S c li u http://www.lrc.tnu.edu.vn private_key.setM(d); private_key.setN(n); } public String Encrypt(String plain_text, Key public_key) { lengthkey =plain_text.length(); if(plain_text == null) return null; if(plain_text.equals("")) return ""; int size, length; int i, j; short p; Euclid ecl = new Euclid(); long c; length = plain_text.length(); byte[] cipher_byte = new byte[(int)length * 4]; j = 0; for(i = 0; i < length; i++) { p = (short)plain_text.charAt(i); c = ecl.ModOf(p, public_key.getM(), public_key.getN()); cipher_byte[j] = (byte)((c >> 24) & 0xff); j++; cipher_byte[j] = (byte)((c >> 16) & 0xff); j++; cipher_byte[j] = (byte)((c >> 8) & 0xff); j++; S c li u http://www.lrc.tnu.edu.vn cipher_byte[j] = (byte)(c & 0xff); j++; } //base64 length = cipher_byte.length; size = length / * 3; byte k, temp; String cipher_text = ""; for(i = 0; i < size;) { k = (byte)((cipher_byte[i] & 0xfc) >> 2); cipher_text += base64.charAt(k); k = (byte)((cipher_byte[i] & 0x03) > 4); k = (byte)(k | temp); cipher_text += base64.charAt(k); k = (byte)((cipher_byte[i] & 0x0f) > 6); k = (byte)(k | temp); cipher_text += base64.charAt(k); k = (byte)((cipher_byte[i] & 0x3f)); cipher_text += base64.charAt(k); i++; } S c li u http://www.lrc.tnu.edu.vn if(i < length) { k = (byte)((cipher_byte[i] & 0xf3) >> 2); cipher_text += base64.charAt(k); k = (byte)((cipher_byte[i] & 0x03) > 4); k = (byte)(k | temp); cipher_text += base64.charAt(k); k = (byte)((cipher_byte[i] & 0x0f) 2) size = 2; length_byte += size; cipher_byte = new byte[(int)length_byte]; j = 0; size = length_text / * 4; for(i = 0; i < size;) { k = IndexInBase64(cipher_text.charAt(i)); cipher_byte[j] = (byte)(k > 4); cipher_byte[j] = (byte)(cipher_byte[j] | temp); j++; cipher_byte[j] = (byte)((k & 0x0f) > 2); cipher_byte[j] = (byte)(cipher_byte[j] | temp); j++; cipher_byte[j] = (byte)((k & 0x03) 4); cipher_byte[j] = (byte)(cipher_byte[j] | temp); j++; cipher_byte[j] = (byte)(k & 0x0f > 2); cipher_byte[j] = (byte)(cipher_byte[j] | temp); j++; S c li u http://www.lrc.tnu.edu.vn cipher_byte[j] = (byte)(k & 0x03