Kryptologi Homework 1

Størrelse: px
Starte visningen fra side:

Download "Kryptologi Homework 1"

Transkript

1 Kryptologi Homework 1 Rune Højsgaard 13. februar Indledning Dette er besvarelsen af øvelsesopgave 1 på kurset Kryptologi 2007, Københavns Universitet. Opgaven består i at dekryptere tre ciffertekster. Til kryptoanalysen af de tre opgaver er der udviklet en række simple hjælpefunktioner der kan findes i bilag A. En elektronisk udgave af dette dokument kan hentes fra 2 Øvelse 1.21 a) Substitution Cipher Givet nedenstående ciffertekst ønskes det at bestemme klarteksten, der er taget fra The Diary of Samuel Marchbanks af Robertson Davies. Cifferteksten er resultatet af at kryptere klarteksten med Substitution Cipher fra [Sti95, p. 7], hvor d K (f) = W. For at finde klarteksten benyttes strategien fra [Sti95, p ]. Frekvensen af de 26 bogstaver er gengivet i figur 1. emglosudcgdncuswysfhnsfcykdpumlwgyicoxysipjck qpkugkmgolicgincgacksnisacykzsckxecjckshysxcg oidpkzcnkshicgiwygkkgkgoldsilkgoiusigledspwzu gfzccndgyysfuszcnxeojncgyeoweupxezgacgnfglkns acigoiyckxcjuciuzcfzccndgyysfeuekuzcsocfzccnc iaczejncshfzejzegmxcyhcjumgkucy Eftersom c har den højeste frekvens formodes det, at d K (c) = E jf. sandsynlighederne i [Sti95, p. 27]. Erstattes f med W og c med E konstateres det at mønsteret WzEEn optræder tre gange i teksten. Da den første af de tre forekomster ikke har et E foran sig, antages det at WzEEn ikke er to ord f.eks. feed og dew. Givet at z og n er før/efter en vokal må de formodes at representerer konsonanter. Givet den hyppige forekomst af z og n antages det at WzEEn er ordet WHEEL, hvilket giver D K (z) = H og D K (n) = L, hvilket giver følgende: emglosudegdleuswyswhlsweykdpumlwgyieoxysipjek qpkugkmgoliegilegaekslisaeykhsekxeejekshysxeg oidpkhelkshiegiwygkkgkgoldsilkgoiusigledspwhu gwheeldgyyswushelxeojlegyeoweupxehgaeglwglkls aeigoiyekxejueiuhewheeldgyysweuekuhesoewheele iaehejleshwhejhegmxeyhejumgkuey 1

2 bogstav frekvens bogstav frekvens a 5 n 13 b 0 o 10 c 37 p 6 d 8 q 1 e 12 r 0 f 9 s 20 g 24 t 0 h 5 u 14 i 15 v 0 j 7 w 5 k 18 x 7 l 7 y 15 m 5 z 13 Figur 1: Frekvensen af forekomster af de 26 bogstaver i cifferteksten Her optræder WHEELdgyysW to gange, hvilket ud fra frekvenserne af g, s og y giver en formodning om, at ordet er WHEELBARROW. Denne antagelse giver altså D K (d) = B, D K (g) = A, D K (s) = O og D K (y) = R: emalooubeableuowrowhlowerkbpumlwarieoxroipjek qpkuakmaolieaileaaekolioaerkhoekxeejekohroxea oibpkhelkohieaiwrakkakaolboilkaoiuoialebopwhu AWHEELBARROWuOHELxeojLEAReoweupxeHAaEALWAlkLO aeiaoirekxejueiuhewheelbarroweuekuheooewheele iaehejleohwhejheamxerhejumakuer I første linie fremstår nu BEABLEuOwROWhLOWER, hvorfor det formodes at D K (h) = F, D K (u) = T og D K (w) = G, hvilket giver klarteksten BEABLETOGROWFLOWER. Ydermer giver frekvensen af k og klarteksten andledning til at formode at D K (k) = S. Denne substitution giver en række fragmenter af teksten; BOpGHT, hvorfor der udfra frekvensen af p formodes at D K (p) = U. GARiEo medfører at D K (i) = D og D K (o) = N. Hermed er det muligt at afkode xroipjes til xrodujes, hvilket i forhold til frekvenserne passer med ordet PRODUCES, altså d K (x) = P og d K (j) = C: emalnotbeabletogrowflowersbutmlgardenproduces qustasmanldeadleaaesoldoaershoespeecesofropea NDBUSHELSOFDEADGRASSASANlBODlSANDTODAleBOUGHT AWHEELBARROWTOHELPeNCLEAReNGeTUPeHAaEALWAlSLO aedandrespectedthewheelbarrowetestheonewheele DaEHeCLEOFWHeCHeAmPERFECTmASTER Herfra er det rimelig nemt at udlede resten af bogstaverne udfra kontekst og frekvens; d K (e) = I, d K (m) = M og d K (l) = Y, d K (q) = J og d K (a) = V, hvilket giver klarteksten: IMAYNOTBEABLETOGROWFLOWERSBUTMYGARDENPRODUCES JUSTASMANYDEADLEAVESOLDOVERSHOESPIECESOFROPEA NDBUSHELSOFDEADGRASSASANYBODYSANDTODAYIBOUGHT 2

3 AWHEELBARROWTOHELPINCLEARINGITUPIHAVEALWAYSLO VEDANDRESPECTEDTHEWHEELBARROWITISTHEONEWHEELE DVEHICLEOFWHICHIAMPERFECTMASTER 3 Øvelse 1.21 b) Vigenère Cipher Givet nedenstående ciffertekst ønskes det at bestemme klarteksten der er taget fra The Diary of Samuel Marchbanks af Robertson Davies. Cifferteksten er resultatet af at kryptere klarteksten med Vigenère Cipher fra [Sti95, p. 12]. For at finde klarteksten benyttes strategien fra [Sti95, p ]. kccpkbgufdphqtyavinrrtmvgrkdnbvfdetdgiltxrgud dkotfmbpvgegltgckqracqcwdnawcrxizakftlewrptyc qkyvxchkftponcqqrhjvajuwetmcmspkqdyhjvdahctrl svskcgczqqdzxgsfrlswcwsjtbhafsiasprjahkjrjumv gkmitzhfpdispzlvlgwtfplkkebdpgcebshctjrwxbafs pezqnrwxcvycgaonwddkackawbbikftiovkcgghjvlnhi ffsqesvyclacnvrwbbirepbbvfexoscdygzwpfdtkfqiy cwhjvlnhiqibtkhjvnpist For at finde nøglens længde udføres en Kasiski test. Det oftest forekommende segment er HJV der optræder fem gange i cifferteksten på positionerne (1 indekseret) 108, 126, og 330, hvilket giver en afstand på 18, 156, 210 og 220. Den største fællesnævner for disse fire afstande er 6, hvorfor det antages at dette er længden på nøglen. For at opnå yderligere sikkerhed for at 6 er den rigtige længde kunne man beregne index of coincidence jf. [Sti95, p. 33]. For at bestemme nøglen, inddeles teksten i m = 6 strenge y i, 1 i m, hvor y i = y i y mi y 2mi. Hver y i frekvensanalyseres og efterfølgende beregnes for hver: M g = 25 i=0 p i f ig mod 26 n hvor n er længden på y i, p i sandsynlighedsfordelingen for alphabetet (engelsk), 0 g 25 og f i er frekvensen. værdierne af M g (y i ) er opsummeret i figur 2. For hvert i findes den værdi af M g der er tættest på 0.065, hvilket indikerer at g = k i. Denne værdi er markeret med firkanter i figur 2. Dette giver nøglen K = (2, 17, 24, 15, 19, 14), eller CRYPTO. Dekrypteres cifferteksten som beskrevet i [Sti95, p ] med nøglen CRYPTO fremstår følgende klartekst: ILEARNEDHOWTOCALCULATETHEAMOUNTOFPAPERNEEDEDF ORAROOMWHENIWASATSCHOOLYOUMULTIPLYTHESQUAREFO OTAGEOFTHEWALLSBYTHECUBICCONTENTSOFTHEFLOORAN DCEILINGCOMBINEDANDDOUBLEITYOUTHENALLOWHALFTH ETOTALFOROPENINGSSUCHASWINDOWSANDDOORSTHENYOU ALLOWTHEOTHERHALFFORMATCHINGTHEPATTERNTHENYOU DOUBLETHEWHOLETHINGAGAINTOGIVEAMARGINOFERRORA NDTHENYOUORDERTHEPAPER 3

4 i Værdien af M g (y i ) 1 0,032 0,036 0,065 0,039 0,034 0,042 0,037 0,031 0,042 0,046 0,025 0,034 0,038 0,042 0,038 0,046 0,036 0,040 0,042 0,033 0,030 0,039 0,043 0,034 0,042 0, ,038 0,039 0,049 0,042 0,040 0,036 0,045 0,030 0,027 0,036 0,045 0,031 0,035 0,048 0,040 0,033 0,036 0,071 0,037 0,030 0,029 0,036 0,030 0,038 0,046 0, ,035 0,036 0,034 0,038 0,036 0,041 0,028 0,038 0,034 0,042 0,041 0,046 0,040 0,043 0,037 0,032 0,035 0,039 0,042 0,031 0,039 0,033 0,035 0,044 0,059 0, ,045 0,038 0,044 0,037 0,037 0,038 0,031 0,033 0,039 0,037 0,037 0,051 0,041 0,031 0,035 0,066 0,037 0,030 0,039 0,041 0,025 0,035 0,041 0,033 0,035 0, ,040 0,033 0,034 0,040 0,045 0,034 0,043 0,046 0,047 0,034 0,034 0,036 0,034 0,035 0,034 0,044 0,034 0,036 0,035 0,056 0,041 0,035 0,043 0,044 0,031 0, ,042 0,038 0,037 0,042 0,039 0,027 0,033 0,039 0,037 0,034 0,048 0,035 0,025 0,037 0,070 0,042 0,032 0,032 0,039 0,033 0,040 0,041 0,035 0,037 0,039 0,048 Figur 2: værdier af M g (y i ) 4 Øvelse 1.21 c) Affine Cipher Givet nedenstående ciffertekst ønskes det at bestemme en klartekst af ukendt oprindelse. Cifferteksten er resultatet af at kryptere en klartekst med Affine Cipher fra [Sti95, p. 8-12]. For at finde klarteksten benyttes strategien fra [Sti95, p ]. Frekvensen af de 26 bogstaver er gengivet i tabel 3. kqerejebcppcjcrkieacuzbkrvpkrbcibqcarbjcvfcup kriofkpacuzqepbkrxpeiieabdkpbcpfcdccafieabdkp bcpfeqpkazbkrhaibkapcciburccdkdccjcidfuixpaff erbiczdfkabicbbenefcupjcvkabpcydccdpkbcocperk ivkscpicbrkijpkabi De mest frekvente bogstaver er c og b, hvorfor det gættes at c er E og b er T. Altså e K (4) = 2 og e K (19) = 1, hvilket giver føgende lineære ligninger: 4a b = 2 19a b = 1 4

5 bogstav frekvens bogstav frekvens a 13 n 1 b 21 o 2 c 32 p 20 d 9 q 4 e 13 r 12 f 10 s 1 g 0 t 0 h 1 u 6 i 16 v 4 j 6 w 0 k 20 x 2 l 0 y 1 m 0 z 4 Figur 3: Frekvensen af forekomster af de 26 bogstaver i cifferteksten Den unikke løsning til Z 26 kan nu findes ved at substituerer a med b i den ene ligning: 4a b = 2 b = 22a 2 19a b = 1 19a 22a 2 = 1 15a 2 = 1 11a = 1 a = b = 2 24 b = 2 b = 4 Da størstefællesnævner for a og 26 er 1, er nøglen K = (19, 4) lovlig og den afprøves på cifferteksten for at undersøge om klarteksten er en meningsfuld tekst. Jf. [Sti95, p. 10] så er 19 1 = 11 i Z 26 hvilket giver: hvilket giver klarteksten: d K (y) = 11(y 4) = 11y 8; OCANADATERREDENOSAIEUXTONFRONTESTCEINTDEFLEUR ONSGLORIEUXCARTONBRASSAITPORTERLEPEEILSAITPOR TERLACROIXTONHISTOIREESTUNEEPOPEEDESPLUSBRILL ANTSEXPLOITSETTAVALEURDEFOITREMPEEPROTEGERANO SFOYERSETNOSDROITS Dette er den Canadiske nationalsang som er skrevet på fransk, hvorfor det har været heldigt, at frekvenstabellen for det engelske sprog kunne anvendes. 5

6 5 Litteratur [Sti95] Douglas R. Stinson. Cryptography - Theory and Practice. CRC Press Inc,

7 7 A Kildekode ï» u s i n g System ; u s i n g System. C o l l e c t i o n s. G e n e r i c ; u s i n g System. Text ; u s i n g System. C o l l e c t i o n s ; u s i n g System. Text. R e g u l a r E x p r e s s i o n s ; namespace K r y p t o l o g i c l a s s Program // the a l p h a b e t s t a t i c char [ ] a l p h a b e t = new char [ ] a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z ; //Very crude char > index f u n c t i o n s t a t i c int alphabetindex ( char c ) int i ; f o r ( i = 0 ; i < 26; i) i f ( a l p h a b e t [ i ] == c ) break ; return i ; // p r o b a b i l i t y o f occurance ( e n g l i s h ) s t a t i c double [ ] l e t t e r p r o b = new double [ ] , , , , , , , , , , , , , , , , , , , , , , , , , ; //Performs Kasiski t e s t on a string. // Prints the recurring segment, index of f i r s t occurance and recurrance, and the distance between p r i v a t e s t a t i c void K a s i s k i T e s t ( s t r i n g t e x t ) Hashtable found = new Hashtable ( ) ; Console. Write ( " C i p h e r t e x t \ t a t, r e p e a t a t \ t d i s t a n c e \ r \n" ) ; Console. Write ( " s t r i n g \ t \ t ( i n d e x ) \ r \n\ r \n" ) ; f o r ( int s t a r t = 0 ; s t a r t < t e x t. Length 3 ; s t a r t ) f o r ( int keylength = 3 ; keylength < ( text. Length s t a r t ) ; k e y l e n g t h) s t r i n g segment = t e x t. S u b s t r i n g ( s t a r t, k e y l e n g t h ) ; i f ( found. Contains ( segment ) ) break ; f o r ( int t e s t = s t a r t k e y l e n g t h ; t e s t < t e x t. Length keylength 1 ; t e s t) i f ( segment == t e x t. S u b s t r i n g ( t e s t, k e y l e n g t h ) ) Console. Write ( segment "\ t \ t " s t a r t ", " t e s t "\ t \ t " ( t e s t s t a r t ) " \ r \n" ) ; i f (! found. ContainsKey ( segment ) ) found. Add( segment, n u l l ) ; // C a l c u l a t e s binomial c o e f f i c i e n t public s t a t i c int Binom ( int n, int k ) int [ ] b = new int [ n 1 ] ; b [ 0 ] = 1 ; f o r ( int i = 1 ; i <= n ; i ) b [ i ] = 1 ; f o r ( int j = i 1 ; j > 0 ; j ) b [ j ] = b [ j 1 ] ; return b [ k ] ; // Counts occourances o f a character in a s t r i n g p r i v a t e s t a t i c int C o u n t L e t t e r s ( char c, s t r i n g t e x t ) return t e x t. Length t e x t. Replace ( c. ToString ( ), "" ). Length ; // Prints occurances of each char in char [ ] alphabet in a given s t r i n g p r i v a t e s t a t i c int [ ] P r i n t O c c u r a n c e ( s t r i n g t e x t, b o o l s i l e n t ) int [ ] o c c V e c t o r = new int [ 2 6 ] ; int index = 0 ; f o r e a c h ( char c i n a l p h a b e t ) int occ = C o u n t L e t t e r s ( c, t e x t ) ; occvector [ index ] = occ ; i n d e x; i f (! s i l e n t ) Console. Write ( c " : " occ "\ r \n" ) ; return occvector ; // Calculates M_g according to Stinson p. 35. p r i v a t e s t a t i c void Mg( s t r i n g y ) int [ ] occ = P r i n t O c c ur a n c e ( y, t r u e ) ; int delimeter = 9 ; // only used f o r l a y o u t f o r ( int g = 0 ; g < 26 ; g) double mgi = 0 ; f o r ( int i = 0 ; i < 2 6 ; i ) mgi = ( l e t t e r p r o b [ i ] ( double ) occ [ ( ig ) %26]) / ( double ) y. Length ; Console. Write ( " 0 : F3", mgi ) ; Console. Write ( " & " ) ; i f ( g1 % d e l i m e t e r == 0 ) Console. Write ( "\ r \n" ) ;

8 8 // Encrypts and d e c r y p t s s t r i n g s with the vignã re Cipher //Assumes lower case string i f decrypting and upper case i f encrypting p r i v a t e s t a t i c s t r i n g V i g e n e r e C i p h e r ( s t r i n g t e x t, s t r i n g key, bool d e c r y p t i n g ) s t r i n g r e t u r n t e x t = S t r i n g. Empty ; //Add key i f encrypting, subtract i f decrypting int swich = 1 ; i f ( d e c r y p t i n g ) swich = 1; //Change text to lower case to use the alphabet [ ] and the alphabetindex method. i f (! d e c r y p t i n g ) t e x t = t e x t. ToLower ( ) ; char [ ] chars = text. ToCharArray ( ) ; char [ ] keychars = key. ToCharArray ( ) ; //Apply encryption to p l a i n t e x t / decrypt c i p h e r t e x t f o r ( int i = 0 ; i < t e x t. Length ; i ) int j = ( a l p h a b e t I n d e x ( c h a r s [ i ] ) swich a l p h a b e t I n d e x ( k e y c h a r s [ i % key. Length ] ) ) % 2 6 ; i f ( j <0) j = 2 6 ; r e t u r n t e x t = a l p h a b e t [ j ] ; //Change case to upper i f decrypting i f ( d e c r y p t i n g ) r e t u r n t e x t = r e t u r n t e x t. ToUpper ( ) ; return re turntex t ; // Encrypts and d e c r y p t s s t r i n g s with the Affine Cipher in Z_ 26 //Assumes lower case string i f decrypting and upper case i f encrypting p r i v a t e s t a t i c s t r i n g A f f i n e C i p h e r ( s t r i n g t e x t, int a, int b, bool d e c r y p t i n g ) s t r i n g r e t u r n t e x t = S t r i n g. Empty ; //Change text to lower case to use the alphabet [ ] and the alphabetindex method. i f (! d e c r y p t i n g ) t e x t = t e x t. ToLower ( ) ; char [ ] chars = text. ToCharArray ( ) ; i f ( d e c r y p t i n g ) //a^ 1... I dont know how to compute i t in modulo so I ve j u s t provided a t a b l e switch ( a ) case 1 : a = 1 ; break ; case 3 : a = 9 ; break ; case 5 : a = 2 1 ; break ; case 7 : a = 1 5 ; break ; case 9 : a = 3 ; break ; case 1 1 : a = 1 9 ; break ; case 1 5 : a = 7 ; break ; case 1 8 : a = 2 3 ; break ; case 1 9 : a = 1 1 ; break ; case 2 1 : a = 5 ; break ; case 2 3 : a = 1 8 ; break ; default : return "" ; f o r ( int i = 0 ; i < t e x t. Length ; i ) int y = a l p h a b e t I n d e x ( c h a r s [ i ] ) ; int j = ( a ( y b ) ) % 2 6 ; i f ( j < 0 ) j = 2 6 ; r e t u r n t e x t = a l p h a b e t [ j ] ; //Change case to upper case r e t u r n t e x t = r e t u r n t e x t. ToUpper ( ) ; e l s e // encrypting f o r ( int i = 0 ; i < t e x t. Length ; i ) int y = a l p h a b e t I n d e x ( c h a r s [ i ] ) ; int j = ( a y b ) % 2 6 ; i f ( j < 0 ) j = 2 6 ; r e t u r n t e x t = a l p h a b e t [ j ] ; return ret urntex t ; // Calculates M_g for a l l y_i given a keylength ( use KasiskiTest to f i n d the // k e y l e n g t h ). p r i v a t e s t a t i c void C a l c u l a t e A l l M g ( s t r i n g y, int k e y l e n g t h ) s t r i n g [ ] ys = new s t r i n g [ k e y l e n g t h ] ; ys. I n i t i a l i z e ( ) ; char [ ] c h a r s = y. ToCharArray ( ) ; f o r ( int i = 0 ; i < c h a r s. Length ; i ) ys [ i%k e y l e n g t h ] = c h a r s [ i ] ; Console. Write ( " i \ t v a l u e o f M_g (y_ i ) \ r \n" ) ; f o r ( int i = 0 ; i < k e y l e n g t h ; i ) Console. Write ( "\ r \n" ) ;

9 9 Console. Write ( i 1 "\ t& " ) ; Mg( ys [ i ] ) ; Console. Write ( "\ r \n" ) ; s t a t i c void Main1 ( s t r i n g [ ] a r g s ) Console. Write ( " E x e r c i s e a ) \ r \ n L e t t e r o c c o u r a n c e s : \ r \n" ) ; P r i n t O c c u r a n c e ( " emglosudcgdncuswysfhnsfcykdpumlwgyicoxysipjck " " q p k u g k m g o l i c g i n c g a c k s n i s a c y k z s c k x e c j c k s h y s x c g " " o i d p k z c n k s h i c g i w y g k k g k g o l d s i l k g o i u s i g l e d s p w z u " " g f z c c n d g y y s f u s z c n x e o j n c g y e o w e u p x e z g a c g n f g l k n s " " a c i g o i y c k x c j u c i u z c f z c c n d g y y s f e u e k u z c s o c f z c c n c " " i a c z e j n c s h f z e j z e g m x c y h c j u m g k u c y ", f a l s e ) ; Console. WriteLine ( "\ r \n\ r \ n E x e r c i s e b ) \ r \ n K a s i s k i t e s t : \ r \n" ) ; KasiskiTest ( " kccpkbgufdphqtyavinrrtmvgrkdnbvfdetdgiltxrgud " " dkotfmbpvgegltgckqracqcwdnawcrxizakftlewrptyc " " qkyvxchkftponcqqrhjvajuwetmcmspkqdyhjvdahctrl " " svskcgczqqdzxgsfrlswcwsjtbhafsiasprjahkjrjumv " " gkmitzhfpdispzlvlgwtfplkkebdpgcebshctjrwxbafs " " pezqnrwxcvycgaonwddkackawbbikftiovkcgghjvlnhi " " ffsqesvyclacnvrwbbirepbbvfexoscdygzwpfdtkfqiy " " cwhjvlnhiqibtkhjvnpist " ) ; Console. WriteLine ( "\ r \n\ r \ n E x e r c i s e b ) \ r \ n C a l c u a l t i n g Mg\ r \n" ) ; C a l c u l a t e A l l M g ( " kccpkbgufdphqtyavinrrtmvgrkdnbvfdetdgiltxrgud " " dkotfmbpvgegltgckqracqcwdnawcrxizakftlewrptyc " " qkyvxchkftponcqqrhjvajuwetmcmspkqdyhjvdahctrl " " svskcgczqqdzxgsfrlswcwsjtbhafsiasprjahkjrjumv " " gkmitzhfpdispzlvlgwtfplkkebdpgcebshctjrwxbafs " " pezqnrwxcvycgaonwddkackawbbikftiovkcgghjvlnhi " " ffsqesvyclacnvrwbbirepbbvfexoscdygzwpfdtkfqiy " " cwhjvlnhiqibtkhjvnpist ", 6 ) ; Console. WriteLine ( "\ r \n\ r \ n E x e r c i s e b ) \ r \ ndecrypting : \ r \n" ) ; s t r i n g d e c r y p t = V i g e n e r e C i p h e r ( " kccpkbgufdphqtyavinrrtmvgrkdnbvfdetdgiltxrgud " " dkotfmbpvgegltgckqracqcwdnawcrxizakftlewrptyc " " qkyvxchkftponcqqrhjvajuwetmcmspkqdyhjvdahctrl " " svskcgczqqdzxgsfrlswcwsjtbhafsiasprjahkjrjumv " " gkmitzhfpdispzlvlgwtfplkkebdpgcebshctjrwxbafs " " pezqnrwxcvycgaonwddkackawbbikftiovkcgghjvlnhi " " ffsqesvyclacnvrwbbirepbbvfexoscdygzwpfdtkfqiy " " c w h j v l n h i q i b t k h j v n p i s t ", " c r y p t o ", t r u e ) ; //Lame Console. Write cant print the whole s t i r i n g at once... f o r ( int i = 0 ; i < decrypt. Length ; i = 256) int end = ( i 256 > decrypt. Length? decrypt. Length i : 256) ; Console. Write ( d e c r y p t. S u b s t r i n g ( i, end ) ) ; Console. WriteLine ( "\ r \n\ r \ n E x e r c i s e c ) \ r \ noccurances : \ r \n" ) ; P r i n t O c c u r a n c e ( " kqerejebcppcjcrkieacuzbkrvpkrbcibqcarbjcvfcup " " kriofkpacuzqepbkrxpeiieabdkpbcpfcdccafieabdkp " " bcpfeqpkazbkrhaibkapcciburccdkdccjcidfuixpaff " " erbiczdfkabicbbenefcupjcvkabpcydccdpkbcocperk " " i v k s c p i c b r k i j p k a b i ", f a l s e ) ; Console. WriteLine ( "\ r \n\ r \ n E x e r c i s e c ) \ r \ ndecypting : \ r \n" ) ; Console. Write ( A f f i n e C i p h e r ( " kqerejebcppcjcrkieacuzbkrvpkrbcibqcarbjcvfcup " " kriofkpacuzqepbkrxpeiieabdkpbcpfcdccafieabdkp " " bcpfeqpkazbkrhaibkapcciburccdkdccjcidfuixpaff " " erbiczdfkabicbbenefcupjcvkabpcydccdpkbcocperk " " i v k s c p i c b r k i j p k a b i ", 1 9, 4, t r u e ) ) ; Console. Read ( ) ;

Det er muligt at chekce følgende opg. i CodeJudge: og

Det er muligt at chekce følgende opg. i CodeJudge: og Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.

Læs mere

Iteration af et endomorft kryptosystem. Substitutions-permutations-net (SPN) og inversion. Eksklusiv disjunktion og dens egenskaber

Iteration af et endomorft kryptosystem. Substitutions-permutations-net (SPN) og inversion. Eksklusiv disjunktion og dens egenskaber Produktsystemer, substitutions-permutations-net samt lineær og differentiel kryptoanalyse Kryptologi, fredag den 10. februar 2006 Nils Andersen (Stinson 3., afsnit 2.7 3.4 samt side 95) Produkt af kryptosystemer

Læs mere

Konfidentialitet og kryptografi 31. januar, Jakob I. Pagter

Konfidentialitet og kryptografi 31. januar, Jakob I. Pagter Konfidentialitet og kryptografi 31. januar, 2009 Jakob I. Pagter Oversigt Kryptografi autenticitet vs. fortrolighed ubetinget vs. beregningsmæssig sikkerhed Secret-key fortrolighed Public-key fortrolighed

Læs mere

Affine - et krypteringssystem

Affine - et krypteringssystem Affine - et krypteringssystem Matematik, når det er bedst Det Affine Krypteringssystem (Affine Cipher) Det Affine Krypteringssystem er en symmetrisk monoalfabetisk substitutionskode, der er baseret på

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4 DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens

Læs mere

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal

Læs mere

Start i cirklen med nummer 1 - følg derefter pilene:

Start i cirklen med nummer 1 - følg derefter pilene: Bogstaver Bogstavet a Skriv bogstavet a i skrivehusene: Farv den figur som starter med a: Bogstavet b Skriv bogstavet b i skrivehusene: Farv den figur som starter med b: Bogstavet c Skriv bogstavet c i

Læs mere

Programmering i C. Lektion 4. 5. december 2008

Programmering i C. Lektion 4. 5. december 2008 Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )

Læs mere

Roskilde Universitetscenter, Datalogisk Afdeling Kryptering. Niels Christian Juul. N&P 11: 2001 April 18th

Roskilde Universitetscenter, Datalogisk Afdeling   Kryptering. Niels Christian Juul. N&P 11: 2001 April 18th Roskilde Universitetscenter, Datalogisk Afdeling E-mail: ncjuul@acm.org Kryptering Niels Christian Juul N&P 11: 2001 April 18th Om kryptering, DES, RSA, PGP og SSL Copyright 1998-2001, Niels Christian

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

Grundlæggende kryptering og digital signatur 04/09/2012 ITU 2.1

Grundlæggende kryptering og digital signatur 04/09/2012 ITU 2.1 Grundlæggende kryptering og digital signatur 04/09/2012 ITU 2.1 Indhold Terminologi, mål og kryptoanalyse Klassisk kryptering Substitution Transposition (permutation) WWII: Enigma Moderne kryptering Symmetrisk

Læs mere

sætning: Hvis a og b er heltal da findes heltal s og t så gcd(a, b) = sa + tb.

sætning: Hvis a og b er heltal da findes heltal s og t så gcd(a, b) = sa + tb. sætning: Hvis a og b er heltal da findes heltal s og t så gcd(a, b) = sa + tb. lemma: Hvis a, b og c er heltal så gcd(a, b) = 1 og a bc da vil a c. lemma: Hvis p er et primtal og p a 1 a 2 a n hvor hvert

Læs mere

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11 DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void

Læs mere

KRYPTOLOGI ( Litt. Peter Landrock & Knud Nissen : Kryptologi)

KRYPTOLOGI ( Litt. Peter Landrock & Knud Nissen : Kryptologi) KRYPTOLOGI ( Litt. Peter Landrock & Knud Nissen : Kryptologi) 1. Klassiske krypteringsmetoder 1.1 Terminologi klartekst kryptotekst kryptering dekryptering 1.2 Monoalfabetiske kryptosystemer 1.3 Additive

Læs mere

University of Copenhagen Faculty of Science Written Exam - 3. April Algebra 3

University of Copenhagen Faculty of Science Written Exam - 3. April Algebra 3 University of Copenhagen Faculty of Science Written Exam - 3. April 2009 Algebra 3 This exam contains 5 exercises which are to be solved in 3 hours. The exercises are posed in an English and in a Danish

Læs mere

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen Sekvensafstand DM34 - Eksamensopgave Jacob Aae Mikkelsen 19 10 76 kokken@grydeske.dk 27. maj 2005 Resumé Rapporten her beskriver tre forskellige rekursive metoder til at sammenligne tekst strenge med.

Læs mere

Kapitel 3 Betinget logik i C#

Kapitel 3 Betinget logik i C# Kapitel 3 i C# er udelukkende et spørgsmål om ordet IF. Det er faktisk umuligt at programmere effektivt uden at gøre brug af IF. Du kan skrive små simple programmer. Men når det bliver mere kompliceret

Læs mere

Workshop: Blockchain og dets potentiale. Professor Jan Damsgaard VÆKSTHUS MIDTJYLLAND 11. juni, 2018

Workshop: Blockchain og dets potentiale. Professor Jan Damsgaard VÆKSTHUS MIDTJYLLAND 11. juni, 2018 Workshop: Blockchain og dets potentiale Professor Jan Damsgaard VÆKSTHUS MIDTJYLLAND 11. juni, 2018 1 Der var en gang Møllegården var ejet af familien møller Det vidste alle og der var ingen grund til

Læs mere

Java Klasse nedarvninger

Java Klasse nedarvninger Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering

Læs mere

Start på Arduino og programmering

Start på Arduino og programmering Programmering for begyndere Brug af Arduino Start på Arduino og programmering EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Sidste gang (Introduktion) Programmeringssproget

Læs mere

Kryptologi og RSA. Jonas Lindstrøm Jensen (jonas@imf.au.dk)

Kryptologi og RSA. Jonas Lindstrøm Jensen (jonas@imf.au.dk) Kryptologi og RSA Jonas Lindstrøm Jensen (jonas@imf.au.dk) 1 Introduktion Der har formodentlig eksisteret kryptologi lige så længe, som vi har haft et sprog. Ønsket om at kunne sende beskeder, som uvedkommende

Læs mere

Introduktion til Kryptologi

Introduktion til Kryptologi Introduktion til Kryptologi September 22, 2014 Kryptologi Datasikkerhed Sikker kommunikation over usikre kanaler Kryptografi: Bygge systemer Kryptoanalyse: Bryde systemer Avancerede Protokoller Data er

Læs mere

Heuristics for Improving

Heuristics for Improving Heuristics for Improving Model Learning Based Testing Muhammad Naeem Irfan VASCO-LIG LIG, Computer Science Lab, Grenoble Universities, 38402 Saint Martin d Hères France Introduction Component Based Software

Læs mere

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Øvelse 9. Klasser, objekter og sql-tabeller insert code here Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til

Læs mere

Kursusarbejde 3 Grundlæggende Programmering

Kursusarbejde 3 Grundlæggende Programmering Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................

Læs mere

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret.

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret. Check dine svar på: https://dtu.codejudge.net/02101-e18/ Exercise 1: Installer Eclipse og Java. Dette kan f.eks. gøres ved at følge instuktionerne i dokumentet eclipse intro.pdf som ligger under Fildeling

Læs mere

Køreplan Matematik 1 - FORÅR 2005

Køreplan Matematik 1 - FORÅR 2005 Lineær algebra modulo n og kryptologi Køreplan 01005 Matematik 1 - FORÅR 2005 1 Introduktion Kryptologi er en ældgammel disciplin, som går flere tusinde år tilbage i tiden. Idag omfatter disciplinen mange

Læs mere

Rekursion og dynamisk programmering

Rekursion og dynamisk programmering Rekursion og dynamisk programmering Datastrukturer & Algoritmer, Dat C Forelæsning 12/10-2004 Henning Christiansen Rekursion: at en procedure kalder sig selv eller et antal metoder kalder hinanden gensidigt.

Læs mere

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende Changes for Rottedatabasen Web Service The coming version of Rottedatabasen Web Service will have several changes some of them breaking for the exposed methods. These changes and the business logic behind

Læs mere

1.1 Formål Webservicen gør det muligt for eksterne parter, at fremsøge informationer om elevers fravær.

1.1 Formål Webservicen gør det muligt for eksterne parter, at fremsøge informationer om elevers fravær. EfterUddannelse.dk FraværService - systemdokumentation BRUGERDOKUMENTATION: WEB-SERVICE Af: Logica Indhold 1. Indledning... 1 1.1 Formål... 1 1.2 Webservice version... 1 1.3 Historik... 1 2. Absence Webservice...

Læs mere

Komplekse tal og Kaos

Komplekse tal og Kaos Komplekse tal og Kaos Jon Sporring Datalogisk Institut ved Københavns Universitet Universitetsparken 1, 2100 København Ø August, 2006 1 Forord Denne opgave er tiltænkt gymnasiestuderende med matematik

Læs mere

Moderne numerische Methoden der Festkörperphysik Lanczos-ED für die AF Heisenberg-Kette

Moderne numerische Methoden der Festkörperphysik Lanczos-ED für die AF Heisenberg-Kette Moderne numerische Methoden der Festkörperphysik Lanczos-ED für die AF Heisenberg-Kette Programmcode gen matrix Lanczos Bedienung des Programms Konvergenz des Lanczos-Verfahrens Grundzustandsenergien der

Læs mere

Koder og kryptering. Foredrag UNF 4. december 2009 Erik Zenner (Adjunkt, DTU)

Koder og kryptering. Foredrag UNF 4. december 2009 Erik Zenner (Adjunkt, DTU) Koder og kryptering Foredrag UNF 4. december 2009 Erik Zenner (Adjunkt, DTU) I. Indledende bemærkninger Hvad tænker I på, når I hører kryptologi? Hvad tænker jeg på, når jeg siger kryptologi? Den matematiske

Læs mere

Fredag 12. januar David Pisinger

Fredag 12. januar David Pisinger Videregående Algoritmik, DIKU 2006/07 Fredag 2. januar David Pisinger Kryptering Spartanere (500 f.kr.) strimmelrulle viklet omkring cylinder Julius Cæsar: substituering af bogstaver [frekvensanalyse]

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Det teknisk-naturvidenskabelige basisår Matematik 1A, Efterår 2005, Hold 3 Prøveopgave C

Det teknisk-naturvidenskabelige basisår Matematik 1A, Efterår 2005, Hold 3 Prøveopgave C Det teknisk-naturvidenskabelige basisår Matematik 1A, Efterår 2005, Hold 3 Prøveopgave C Opgaven består af tre dele, hver med en række spørgsmål, efterfulgt af en liste af teorispørgsmål. I alle opgavespørgsmålene

Læs mere

Skriftlig Eksamen Diskret matematik med anvendelser (DM72)

Skriftlig Eksamen Diskret matematik med anvendelser (DM72) Skriftlig Eksamen Diskret matematik med anvendelser (DM72) Institut for Matematik & Datalogi Syddansk Universitet, Odense Onsdag den 18. januar 2006 Alle sædvanlige hjælpemidler (lærebøger, notater etc.),

Læs mere

Programmeringscamp. Implementer funktionerne én for én og test hele tiden.

Programmeringscamp. Implementer funktionerne én for én og test hele tiden. Programmeringscamp De to opgaver træner begge i at lave moduler som tilbyder services der kan bruges af andre, samt i at implementere services efter en abstrakt forskrift. Opgave 1 beder jer om at implementere

Læs mere

Kursus navn: Indledende programmering Kursus nr. 02101

Kursus navn: Indledende programmering Kursus nr. 02101 Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning

Læs mere

Forelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999

Forelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999 sammenligninger, hvor Programmering 1999 Forelæsning 17, tirsdag 2 november 1999 Søgning efter en given værdi i en tabel Lineær søgning og binær søgning Effektivitet: maskinuafhængig vurdering af køretid

Læs mere

Programmering i C. Lektion september 2009

Programmering i C. Lektion september 2009 Programmering i C Lektion 1 8. september 2009 Målgruppe Motivation Indhold Form Materiale 2 / 47 Kursusintroduktion 1 Målgruppe 2 Motivation 3 Indhold 4 Form 5 Materiale Målgruppe Motivation Indhold Form

Læs mere

Af Marc Skov Madsen PhD-studerende Aarhus Universitet email: marc@imf.au.dk

Af Marc Skov Madsen PhD-studerende Aarhus Universitet email: marc@imf.au.dk Af Marc Skov Madsen PhD-studerende Aarhus Universitet email: marc@imf.au.dk 1 Besøgstjenesten Jeg vil gerne bruge lidt spalteplads til at reklamere for besøgstjenesten ved Institut for Matematiske Fag

Læs mere

Kryptologi 101 (og lidt om PGP)

Kryptologi 101 (og lidt om PGP) Kryptologi 101 (og lidt om PGP) @jchillerup #cryptopartycph, 25. januar 2015 1 / 27 Hvad er kryptologi? define: kryptologi En gren af matematikken, der blandt andet handler om at kommunikere sikkert over

Læs mere

Basic statistics for experimental medical researchers

Basic statistics for experimental medical researchers Basic statistics for experimental medical researchers Sample size calculations September 15th 2016 Christian Pipper Department of public health (IFSV) Faculty of Health and Medicinal Science (SUND) E-mail:

Læs mere

#AlleKanKode. Lektion 2 - Konstanter og Variabler

#AlleKanKode. Lektion 2 - Konstanter og Variabler #AlleKanKode Lektion 2 - Konstanter og Variabler Disclaimer / Ansvarsfraskrivelse Alt du deler og siger mm bliver optaget. Lad være med at dele privat oplysninger, adgangskoder, kreditkort oplysninger

Læs mere

Introduktion til Kryptologi. Mikkel Kamstrup Erlandsen

Introduktion til Kryptologi. Mikkel Kamstrup Erlandsen Introduktion til Kryptologi Mikkel Kamstrup Erlandsen Indhold 1 Introduktion 2 1.1 Om Kryptologi.......................... 2 1.2 Grundlæggende koncepter.................... 2 1.3 Bogstaver som tal........................

Læs mere

Introduktion til funktioner, moduler og scopes i Python

Introduktion til funktioner, moduler og scopes i Python Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for

Læs mere

Component based software enginering Diku 2005 Kritikopgave

Component based software enginering Diku 2005 Kritikopgave Component based software enginering Diku 2005 Kritikopgave Nicolas Møller Henschel 17. april 2005 1 Indhold 1 Indledning 3 2 Indhold 3 2.1 Introduktionen.......................... 3 2.1.1 Mangler..........................

Læs mere

Løsning af skyline-problemet

Løsning af skyline-problemet Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle

Læs mere

Sentinel (Dynamisk IP) til ZyWALL (Statisk IP) VPN Tunnel

Sentinel (Dynamisk IP) til ZyWALL (Statisk IP) VPN Tunnel Sentinel (Dynamisk IP) til ZyWALL (Statisk IP) VPN Tunnel 1. Opsætning af ZyWALL VPN 2. Opsætning af SSH Sentinel Denne side giver en gennemgang af opsætning af VPN mellem Sentinel software klient v1.4

Læs mere

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11 DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4

Læs mere

Danskhjælpen er en lille opslagsgrammatik. Her kan du læse om de grammatiske emner, før eller imens du arbejder med dine Grammar-opgaver.

Danskhjælpen er en lille opslagsgrammatik. Her kan du læse om de grammatiske emner, før eller imens du arbejder med dine Grammar-opgaver. Danskhjælpen Danskhjælpen er en lille opslagsgrammatik. Her kan du læse om de grammatiske emner, før eller imens du arbejder med dine Grammar-opgaver. Adjektiver (At Risk) 2 Present Continuous (What s

Læs mere

It og informationssøgning Forelæsning december 2006 Jakob Grue Simonsen. Diverse emner af almen interesse

It og informationssøgning Forelæsning december 2006 Jakob Grue Simonsen. Diverse emner af almen interesse It og informationssøgning Forelæsning 12 6. december 2006 Jakob Grue Simonsen Diverse emner af almen interesse 1 Gemme objekter til filer I python skal en fil på disken åbnes, før man kan læse eller skrive

Læs mere

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003 Side 1 af 8 Dato: 14-05-2003 Til Sigurd Som aftalt vil jeg her fremsende vores program til vores 80C535 kit og display. Det gik jo ud på at vi skulle starte med at få den til at intialiserer displayet,

Læs mere

PROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections;

PROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections; PROGRAM using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace EventManager class Program static void Main(string[] args) string hovedmenu = ""; string svar;

Læs mere

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

Ugeseddel 4 1. marts - 8. marts

Ugeseddel 4 1. marts - 8. marts Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,

Læs mere

B. Appendex: Data Encryption Standard.

B. Appendex: Data Encryption Standard. DES B.1 B. Appendex: Data Encryption Standard. (B.1). Data Encryption Standard, også kaldet DES, er en amerikansk standard for kryptering af data. En kort beskrivelse af DES er medtaget her, fordi DES

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

I denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.

I denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder. Denne guide er oprindeligt udgivet på Eksperten.dk Collections i.net Når du kigger i namespacet System.Collections finder du over 10 forskellige klasser. At vælge den rigtige til netop din applikations

Læs mere

//--------------------------------- Definition af porte og funktioner -------------------------

//--------------------------------- Definition af porte og funktioner ------------------------- Temeraturmåler (C-program).txt // Initialiserings-sekvens #include #pragma model=medium #pragma code=0x0000 #pragma xdata=0x4000 #pragma asm=on #pragma parameters=register //#define display P4

Læs mere

applikation----x----odbc driver manager----foobar ODBC driver----foobar database

applikation----x----odbc driver manager----foobar ODBC driver----foobar database Denne guide er oprindeligt udgivet på Eksperten.dk ODBC i C/C++ Denne artikel beskriver hvordan man bruger ODBC i C/C++. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab

Læs mere

Krypter dine mails når det er nødvendigt

Krypter dine mails når det er nødvendigt Krypter dine mails når det er nødvendigt Af Thomas Bødtcher-Hansen Hvor og hvornår skal vi kryptere vores mails? De paranoide mennesker krypterer alle deres mails og de naive mennesker ingen af deres mails.

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Programmeringskursus Kursusaften 3. Programmering for begyndere Brug af Arduino. Display. Kursusaften 3 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Programmeringskursus Kursusaften 3. Programmering for begyndere Brug af Arduino. Display. Kursusaften 3 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Display EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Sidste gang havde vi

Læs mere

Løsningsforslag Skriftlig eksamen 9. januar 2012

Løsningsforslag Skriftlig eksamen 9. januar 2012 Løsningsforslag Skriftlig eksamen 9. januar 2012 Version 1, 2012-01-09 Spørgsmål 1 Spørgsmål 1.1 Først laver vi indlysende korrekt NFAer for hver af de to dele (ddd ddd) og (_ddd)* af det givne regulære

Læs mere

Kursusarbejde 2 Grundlæggende Programmering

Kursusarbejde 2 Grundlæggende Programmering Kursusarbejde 2 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 31. oktober 2003 Indhold 1. Kode 2 1.1. hotel.h.................................................... 2 1.2. hotel.cc...................................................

Læs mere

En karakteristik af de regulære sprog. Ugens emner. FA minimering [5.1-5.2] MyHill-Nerode-sætningen en algoritme til minimering af FA er

En karakteristik af de regulære sprog. Ugens emner. FA minimering [5.1-5.2] MyHill-Nerode-sætningen en algoritme til minimering af FA er Ugens emner FA minimering [.-.] MyHill-Nerode-sætningen en algoritme til minimering af FA er En karakteristik af de regulære sprog Et sprog L er regulært hvis og kun hvis L beskrives af et regulært udtryk

Læs mere

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne. Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning

Læs mere

Kursus 02199: Programmering. Kontrol af programudførelsen. afsnit 3.1-3.5. if (indkomst > 267000) topskat = (indkomst-267000) * 0.

Kursus 02199: Programmering. Kontrol af programudførelsen. afsnit 3.1-3.5. if (indkomst > 267000) topskat = (indkomst-267000) * 0. Kursus 02199: Programmering afsnit 3.1-3.5 Anne Haxthausen IMM, DTU 1. Kontrol af programudførn (afsnit 3.1) 2. Valg-sætninger (if og switch) (afsnit 3.2 og 3.3) 3. Bloksætninger (afsnit 3.2) 4. Logiske

Læs mere

DANMARKS TEKNISKE UNIVERSITET

DANMARKS TEKNISKE UNIVERSITET DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler

Læs mere

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017 Programmering og Problemløsning, 2017 Martin Elsman Department of Computer Science University of Copenhagen DIKU September 27, 2017 Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September

Læs mere

Historisk Kryptografi

Historisk Kryptografi Historisk Kryptografi Kryptologi ved Datalogisk Institut, Aarhus Universitet 1 Introduktion I denne note skal vi kigge på nogle af de kryptografiske teknikker der er blevet benyttet igennem historien,

Læs mere

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Computere er uvurderlige redskaber for personer der ønsker at arbejde med matematiske modeller

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Modern Concurrency Abstractions for C#

Modern Concurrency Abstractions for C# Modern Concurrency Abstractions for C# Nick Benton Luca Cardelli Cédric Fournet Presenter: Henrik Kragh-Hansen September 27, 2007 Motivation for concurrency Forbedring af concurrency Baggrundsinformation

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

extreme Programming Kunders og udvikleres menneskerettigheder

extreme Programming Kunders og udvikleres menneskerettigheder extreme Programming Software Engineering 13 1 Kunders og udvikleres menneskerettigheder Kunder: At sætte mål og få projektet til at følge dem At kende varighed og pris At bestemme softwarefunktionalitet

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

Civilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104

Civilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Kursusnavn: Programmering. Tilladte hjælpemidler: Alle skriftlige hjælpemidler Opgavesættet består af fire opgaver, der har følgende vægtning: Opgave

Læs mere

Linear Programming ١ C H A P T E R 2

Linear Programming ١ C H A P T E R 2 Linear Programming ١ C H A P T E R 2 Problem Formulation Problem formulation or modeling is the process of translating a verbal statement of a problem into a mathematical statement. The Guidelines of formulation

Læs mere

SQL Server 2016 Data Adgang

SQL Server 2016 Data Adgang SQL Server 2016 Data Adgang MSBIP, 5. OKTOBER, 2015 Agenda SQL Server 2016 CTP 2.3 Pragmatisk Data Adgangskontrol Row Level Security Dynamic Masking Kombination af begge Alternativet Hvem er jeg Selvstændig

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017 Programmering og Problemløsning, 2017 Input og Output Martin Elsman Datalogisk Institut Københavns Universitet DIKU 27. November, 2017 Martin Elsman (DIKU) Programmering og Problemløsning, 2017 27. November,

Læs mere

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato: Side 1 af 13 Dato: 03-06-03 Til Sigurd Som aftalt får du nu tilbygningen til 80C535 kittet, keyboard og programmet med programopdatering. Den sidste opgave her, gik så ud på at tilslutte et tastatur, og

Læs mere

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger

Læs mere

Portal Registration. Check Junk Mail for activation . 1 Click the hyperlink to take you back to the portal to confirm your registration

Portal Registration. Check Junk Mail for activation  . 1 Click the hyperlink to take you back to the portal to confirm your registration Portal Registration Step 1 Provide the necessary information to create your user. Note: First Name, Last Name and Email have to match exactly to your profile in the Membership system. Step 2 Click on the

Læs mere

StarWars-videointro. Start din video på den nørdede måde! Version: August 2012

StarWars-videointro. Start din video på den nørdede måde! Version: August 2012 StarWars-videointro Start din video på den nørdede måde! Version: August 2012 Indholdsfortegnelse StarWars-effekt til videointro!...4 Hent programmet...4 Indtast din tekst...5 Export til film...6 Avanceret

Læs mere

Name: Week of April 15 MathWorksheets.com

Name: Week of April 15 MathWorksheets.com Get a fidget spinner! Spin it. I needed to spin time(s) to finish. Spin again. Add. Complete each number bond. I needed to spin time(s) to finish. How many times do you need to spin? I needed to spin time(s)

Læs mere

Forelæsning Uge 4 Mandag

Forelæsning Uge 4 Mandag Forelæsning Uge 4 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder strenge) Opfølgning på Skildpadde

Læs mere

Website review groweasy.dk

Website review groweasy.dk Website review groweasy.dk Generated on September 01 2016 10:32 AM The score is 56/100 SEO Content Title Webbureau Odense GrowEasy hjælper dig med digital markedsføring! Length : 66 Perfect, your title

Læs mere

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen Studiepraktik Thomas Bøgholm boegholm@cs.aau.dk Mikkel Hansen mhan@cs.aau.dk Jacob Elefsen jelefs12@student.aau.dk 1 Studiepraktik -- program Program onsdag 10.00 10.15 Registrering af fremmøde og gennemgang

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Differential Evolution (DE) "Biologically-inspired computing", T. Krink, EVALife Group, Univ. of Aarhus, Denmark

Differential Evolution (DE) Biologically-inspired computing, T. Krink, EVALife Group, Univ. of Aarhus, Denmark Differential Evolution (DE) Differential Evolution (DE) (Storn and Price, 199) Step 1 - Initialize and evaluate Generate a random start population and evaluate the individuals x 2 search space x 1 Differential

Læs mere

Rekursion C#-version

Rekursion C#-version Note til Programmeringsteknologi Akademiuddannn i Informationsteknologi Rekursion C#-version Finn Nordbjerg 1 Rekursion Rekursionsbegrebet bygger på, at man beskriver noget ved "sig selv". Fx. kan tallet

Læs mere