Random Number Generators

Maat: px
Weergave met pagina beginnen:

Download "Random Number Generators"

Transcriptie

1 Random Number Generators Inés Carvajal Gallardo 20 juni Inleiding Deze paper gaat over random numbers in cryptografische toepassingen. Er is binnen de cryptografie grote vraag naar random number generators. Waarom zijn deze nodig en nog belangrijker, hoe komen we aan een goede random number generator? In deze paper zal ik uiteenzetten wat voor soort random number generators er zijn, hoe veilig ze zijn en hoe ze werken. 2 Random numbers Zoals gezegd zijn random numbers van groot belang in de cryptografie. Er zijn vele algoritmes die voor hun veiligheid vertrouwen op random numbers. Zo worden ze onder andere gebruikt als nonces, als salts, als sessiesleutel, of als bits voor stroomversleuteling die, zoals we al eerder in de cursus hebben gezien, zo willekeurig mogelijk moeten zijn [1] [2]. Verder zijn er in het speciaal ook vaak willekeurige priemgetallen nodig, voor bijvoorbeeld encryptiemethodes als RSA. In deze paper gaan we verder niet in op willekeurige priemgetallen. 3 Pseudo Random Number Generators Een Pseudo Random Number Generator, een PRNG, wordt veel gebruikt om ogenschijnlijk random numbers te genereren. Hoewel een PRNG een bitreeks kan genereren die er voor ons compleet willekeurig uitziet, is de bitreeks niet echt willekeurig. Er zijn hier meerdere oorzaken voor. Ten eerste heeft dit te maken met het feit dat een PRNG deterministisch is. Alle PRNG s maken gebruik van een beginwaarde waarvan alle volgende waarden in de reeks worden afgeleid. Deze beginwaarde wordt ook wel een seed value genoemd. De seed value gaat in een formule of algoritme die een reeks waarden uitrekent. De methode of formule die gebruikt wordt om aan de volgende bits in de reeks te komen is deterministisch: als we deze twee keer uitvoeren met dezelfde beginwaarde, krijgen we twee identieke bitreeksen terug. Dit houdt dus in dat de bitreeks, als we de initiële waarde weten, te voorspellen is. 1

2 Ten tweede hebben we te maken met periodiciteit. De periode van de bitreeks die door een PRNG gegenereerd kan worden, is de lengte van de bitreeks voordat we herhalingen gaan zien. Het moge duidelijk zijn, dat zodra we een herhaling in de bitreeks ontdekken, de reeks niet meer veilig is, omdat we dan alle waarden die gaan komen al weten, dit zijn namelijk dezelfde waarden als die we eerder hebben aangetroffen. In de praktijk zal dit niet altijd een groot probleem zijn, omdat er veel gecompliceerde PRNG s bestaan waarvan de periode dusdanig lang is, dat de periode in de praktijk geen hinder oplevert en daarom als argument tegen het gebruik van PRNG s genegeerd kan worden. De meeste PRNG s hebben dus imperfecties. Hun output is extrapoleerbaar, wat betekent dat als we een gedeelte van de bitreeks hebben opgevangen, we kunnen berekenen wat ervoor of erna komt. Ondanks de nadelen van PRNG s, worden ze toch vaak gebruikt. De vraag is: waarom dan? Een groot voordeel van PRNG s is dat ze erg snel zijn in het uitrekenen van pseudo-random numbers. Ze worden dan ook vaak gebruikt vanwege hun efficiëntie wanneer er ingeleverd mag worden aan willekeurigheid. Daarnaast is het soms ook juist gewenst dat een gegenereerde bitreeks deterministisch is, zodat deze nog eens geproduceerd kan worden. PRNG s worden daarom veel gebruikt in simulaties. 3.1 Lineaire congruentie generator In de talen Java en C# heeft men toegang tot de Random-klasse, met behulp waarvan er random numbers kunnen worden gegenereerd. Deze klasse geeft als object een PRNG die gebaseerd is op de lineaire congruentiegenerator. Omdat de Random-klasse een PRNG teruggeeft, zijn de getallen die gegenereerd worden niet werkelijk willekeurig. Het is daarom ook niet aan te raden om van Random gebruik te maken. In plaats daarvan is het mogelijk om de SecureRandom-klasse te gebruiken, die veiliger is dan Random. Verderop in deze paper zal worden uitgelegd hoe deze klasse werkt. De lineaire congruentiegenerator is een familie van algoritmen die gedefinieerd is door de volgende recurrente betrekking: x n+1 = (k x n + a) mod m Hierbij is er een waarde x 0 nodig die als seed-value functioneert, een getal k waarmee we vermenigvuldigen, een modulo m en een waarde a waarmee we ophogen. In de klasse Random wordt hierbij als x 0, de startwaarde, een getal van 48 bits gebruikt. Om te zien wat voor reeks getallen we hiermee zouden kunnen genereren, nemen we als voorbeeld m = 10, x 0 = a = k = 7. We krijgen de volgende reeks: 7, 6, 9, 0, 7, 6, 9, 0. [3] We zien hier een herhaling in. De reeks is dus niet zo willekeurig als we zouden willen, helemaal niet willekeurig zelfs. De willekeurigheid van de reeks hangt af 2

3 van onze startwaarde, de modulus m en van a en k. Maar hoe we deze waarden ook kiezen, uiteindelijk zullen we in de reeks getallen altijd een herhaling zien. Wat we dus zouden willen is om daarom onze periode zo hoog mogelijk te krijgen. Het is bewezen dat de periode van een lineaire congruentiegenerator ten hoogste m kan zijn [3]. Deze periode kunnen we krijgen als we onze getallen zo kiezen dat: m en a relatief priem zijn. Dit is een reden waarom men er meestal voor kiest om een priemgetal als de modulo m te kiezen. (k - 1) deelbaar is door alle priemfactoren van m. (k - 1) een veelvoud van 4 is, wanneer m dit ook is. Verder is het dan ook van belang dat we een grote m kiezen, zodat de periode zo groot mogelijk wordt [3, p. 17]. De lineaire congruentiegenerator is niet heel sterk tegen aanvallen. Wanneer we meerdere opeenvolgende getallen in de reeks weten, kunnen we de modulo m en het getal k met een acceptabele hoeveelheid werk berekenen [4]. Er bestaan nog meer PRNG s, waarvan er sommigen sterker zijn dan de lineaire congruentiegenerator, dat wil zeggen dat de reeks getallen die ze genereren willekeuriger is. Toch is het nu wel duidelijk waarom we het gebruik van PRNG s in cryptografische toepassingen niet zomaar kunnen goedkeuren en dat de klasse Random geen echte random numbers oplevert. Andere bekende PRNG s zijn ook wel het Linear Feedback Shift Register en de Mersenne Twister. 4 True random number generators We hebben gezien dat de meeste PRNG s niet veilig zijn, omdat de waarden in de reeks te voorspellen zijn. Een voor de hand liggend alternatief lijkt om dan op zoek te gaan naar random number generators die écht willekeurig zijn. Deze worden de True Random Number Generators genoemd. Dit zijn random number generators die gebruik maken van fysische processen die willekeurig zijn om random numbers te genereren, door de resultaten van de processen te meten en ze te digitaliseren. Een goed voorbeeld van een dergelijk proces is radioactief verval. Dit is het proces waarbij er energie wordt uitgezonden wanneer de kern van een instabiel atoom ioniserende deeltjes uitzendt. Volgens de kwantumtheorie is het moment waarop er radioactief verval op zal treden onmogelijk om te voorspellen, wat dit proces tot een goede kandidaat maakt voor een TRNG. Een Geiger-teller kan worden gebruikt om de straling die wordt uitgezonden te meten. De fysische processen die bij TRNG s worden gebruikt kunnen ook simpele processen zijn zoals de toetsaanslagen op je computer of de bewegingen die met de muis worden gemaakt. Het proces dat wordt gekozen maakt echter wel uit 3

4 voor de betrouwbaarheid van de willekeurigheid. Toetsaanslagen worden in de praktijk bijvoorbeeld vaak gebufferd door de computer. Daarom komen er op hetzelfde moment meerdere toetsaanslagen aan die niet op hetzelfde moment zijn gemaakt, wat de willekeurigheid vermindert. [1] Men zou ook een niet-fysisch proces kunnen gebruiken zoals het opgooien van een dobbelsteen, wat een willekeurig proces is, maar in het algemeen wordt de voorkeur aan fysische processen gegeven omdat deze makkelijker te meten en te digitaliseren zijn. Een voorbeeld van een dienst die true random numbers genereert is random.org. Deze TRNG maakt gebruikt van het geluid in de atmosfeer, dat al gemeten kan worden met een simpele radio, en de kleine variaties hierin om zijn getallen te genereren. Een argument tegen het gebruik van fysische processen voor het genereren van random numbers is dat zelfs deze processen deterministisch zouden kunnen zijn, maar als ze dit zijn, beschikken we in elk geval niet over de rekenkracht om er een aanval tegen op te stellen. Met een willekeurig proces bedoelen we daarom ook vooral dat het proces voor een waarnemer willekeurig is. TRNG s kunnen dus een goede uitkomst bieden voor cryptografische toepassingen. Toch worden ze er niet altijd in gebruikt. Dit komt doordat het genereren van bits met een TRNG erg langzaam is. Een betere optie is om true random numbers te gebruiken als seed-values in een PRNG. 5 Secure random number generators Als PRNG s niet veilig genoeg zijn en TRNG s niet genoeg bits per seconde kunnen leveren, moeten we ergens anders de oplossing zoeken. Deze oplossing kunnen we vinden in de Secure Random Number Generators, SRNG s. Dit zijn eigenlijk PRNG s, maar ze moeten aan extra eisen voldoen om cryptografisch veilig genoemd te kunnen worden. Vele SRNG s maken gebruik van entropie, een maat voor de onzekerheid of willekeurigheid van informatie. De SRNG zorgt er dan voor dat de entropie als het ware over meerdere bits wordt uitgesmeerd, zodat een grotere bitreeks (bijna) willekeurig wordt. 5.1 Statistische testen Hoe bepalen we nu of een SRNG getallen produceert die voldoende willekeurig zijn? Er bestaan statistische testen die een reeks getallen kunnen evalueren op willekeurigheid. Echter is het lastig om met volledige zekerheid te zeggen dat een reeks getallen geheel random is. Voor elke statistische test die op de reeks wordt uitgevoerd kunnen we wel met steeds meer zekerheid zeggen dat de reeks random is. Statistische testen worden onderverdeeld in theoretische en empirische testen. Enkele bekende empirische testen zijn de Chi-squared test en de seriële test. [3] Een bitreeks kan alleen willekeurig zijn als er ongeveer evenveel nullen als enen 4

5 in voorkomen. De seriële test kijkt naar deze eigenschap, maar test dit ook voor bitstrings van maar dan 1 bit. Wanneer er twee bits zijn, moeten namelijk de bitstrings 00, 10, 01 en 11 ook ongeveer even vaak voorkomen. Bij een random bitreeks zou dit voor subreeksen van alle lengtes zo moeten zijn. Natuurlijk is een gelijk aantal enen en nullen niet afdoende argument voor willekeurigheid. Een bitreeks zou de test kunnen doorstaan, maar is helemaal niet willekeurig. Vandaar dat het ook nodig is om meerdere tests te doen. [5]. De chi-squared test test de frequenties van bepaalde gebeurtenissen en vergelijkt deze dan met die van een van tevoren berekende distributie die willekeurig gedrag weergeeft. Met de chi-squared test is het dus mogelijk om de waarschijnlijkheid te berekenen dat je resultaten echt willekeurig zijn. Een eis voor veiligheid of willekeurigheid van een SRNG is dat hij de next-bit - test kan doorstaan. Het mag niet mogelijk zijn, gegeven k gegenereerde bits, om de k + 1 ste bit in polynomiale tijd te berekenen met meer dan 50% kans op slagen. Het is bewezen dat als een SRNG deze test kan doorstaan, hij alle andere statistische tests ook zal doorstaan. [6] 5.2 Blum Blum Shub De Blum Blum Shub is een PRNG die cryptografisch veilig is en daarmee tot de SRNG s behoort. Deze SRNG is ontworpen door Lenore Blum, Manuel Blum en Michael Shub in Het algoritme is een recurrente betrekking in de volgende vorm: x n+1 = x n 2 mod m Hierbij is m het product van twee grote priemgetallen p en q. Met deze methode kunnen bitreeksen worden gemaakt die veel willekeuriger zijn dan die die met bijvoorbeeld de lineaire congruentie generator worden gemaakt. De Blum Blum Shub is echter niet erg efficiënt. De veiligheid van de Blum Blum Shub is gegarandeerd zolang het factorisatieprobleem niet kan worden opgelost [2]. 5.3 SecureRandom SecureRandom is een klasse in Java die een SRNG levert [7]. SecureRandom implementeert zelf niet een PRNG, maar maakt gebruik van al bestaande PRNG implementaties uit andere klasses zodat het random numbers kan genereren. SecureRandom kan worden gebruikt in combinatie met meerdere algoritmen als onderliggende PRNG. Dit algoritme moet dan de Service Provider Interface hebben geïmplementeerd om hiervoor gebruikt te kunnen worden. Het is dus mogelijk om zelf een algoritme te specificeren en hiervoor een SecureRandomobject te krijgen. Een veelgebruikt algoritme is de SHA1PRNG, een SRNG gebaseerd op het SHA1-algoritme. SecureRandom probeert de interne staat van de random number generator willekeurig te houden. Dit wordt gedaan met behulp van een generateseed() methode, waarmee de klasse zichzelf voedt met random bits. Het is ook mogelijk 5

6 voor een gebruiker om zelf seed-bits mee te geven, maar deze vullen altijd de bestaande seed-bits aan, zodat de willekeurigheid niet verminderd kan worden. Wat belangrijk is bij het gebruik van deze klasse, is dat er vaak genoeg nieuw random materiaal wordt gegenereerd en men dus periodiek de generateseed() methode aanroept, omdat de interne staat van de PRNG random moet blijven. Hoe zorgt SecureRandom ervoor dat de interne staat van de prng willekeurig blijft? Hiervoor wordt een entropy pool gebruikt. Waar de entropie vandaan komt, hangt af van het OS dat gebruikt wordt en het OS weet waar het de entropie vandaan kan halen. Het OS verzamelt de entropie en SecureRandom gebruikt dit op zijn beurt. Op systemen met Linux wordt er vaak vanuit het bestand /dev/random gelezen. SecureRandom werkt dan als een laag om de /dev/random heen zodat we bij de entropie kunnen die door het OS wordt aangeboden. Wanneer we dan generateseed() aanroepen, wordt de entropie in de entropy pool verminderd. Het is dus mogelijk dat de entropy pool leegraakt. Op Windows wordt vaak de Crypt- GenRandom() API-call gebruikt. SecureRandom gebruikt de entropie om heel willekeurige seed -waarden te maken waarmee de interne prng wordt gevoed. [8] Entropie kan worden verzameld vanuit allerlei willekeurige gebeurtenissen op de computer. Denk hierbij aan tijden tussen toetsaanslagen, ruis die via een microfoon binnenkomt, tijden tussen interrupts, timing van threads die toegang tot de processor krijgen, cpu-gebruik en de temperatuur in de computer, etc. Het is wel belangrijk om je te beseffen dat sommige gebeurtenissen alsnog niet helemaal willekeurig zijn en dat er dus een verschil bestaat in kwaliteit van de bron van entropie. Op Linux worden onder andere de volgende bronnen gebruikt voor het verzamelen van entropie: De activiteit van de muis en het toetsenbord I/O operaties op de disk Bepaalde interrupts Wanneer er zich bepaalde gebeurtenissen voordoen, wordt er een 32-bits woord gemaakt dat de tijd van de gebeurtenis representeert en een 32-bits woord dat de attributen van de gebeurtenissen weergeeft. Bij een toetsaanslag zou dit bijvoorbeeld kunnen zijn welke toets er is ingedrukt. [9] Op Windows wordt vaak de CryptGenRandom() interface gebruikt, die onder andere de volgende bronnen gebruikt voor het verzamelen van entropie: [10] De tick-count sinds de laatste boot CPU-performance en de data van de CPU counter Het huidige procesid 6

7 Het huidige threadid Het OS maakt gebruik van meerdere gebeurtenissen om de entropie-pool te vullen, maar daarmee kan het ook zijn dat deze leeg is wanneer we teveel van de entropie opvragen. Dit is mede een goede reden voor de manier waarop SecureRandom en andere SRNG s werken: de entropie wordt als het ware over meerdere bits uitgesmeerd, omdat het te langzaam zou zijn om alleen maar entropie te gebruiken als bitreeks. In dat geval zouden we, wanneer de entropypool leeg is, moeten wachten tot er weer voldoende entropie door het systeem verzameld is. 6 Conclusie We hebben verschillende soorten random number generators gezien. De pseudo random number generators zijn cryptografisch niet zo veilig, maar worden wel gebruikt wanneer efficiëntie nodig is. De true random number generators genereren echt willekeurige getallen, maar leveren daarvoor op het gebied van efficiëntie veel in. Daarom worden ze voor de meeste toepassingen toch niet gebruikt. De secure random number generators zijn beter geschikt voor cryptografische toepassingen en moeten statistische testen doorstaan voordat ze veilig genoemd mogen worden. De klassen Random en SecureRandom zijn respectievelijk een pseudo random number generator en een secure random number generator. De klasse SecureRandom maakt gebruikt van de entropie die in het systeem beschikbaar is om willekeurige getallen te genereren. Hoe het systeem aan entropie komt, verschilt per systeem. 7

8 Referenties [1] random.org. Introduction to randomness and random numbers. [2] Brian Stack. Cryptographically secure random number generators [3] Donald Knuth. The art of computer programming, volume 2. Addison Wesley Longman, [4] Neal R Wagner. The laws of cryptography: Pseudo random number generation [5] Kroigard en Danielsen Geisler. About random bits. [6] Andrew C. Yao. Theory and applications of trapdoor functions. [7] SecureRandom. [8] Amit Sethi for Cigital. Proper use of java s securerandom. [9] Gutterman en Pinkas en Reinman. Analysis of the linux random number generator. [10] Microsoft. Cryptgenrandom function. 8

Random number generators

Random number generators Random number generators Marijke Bodlaender 3137759 2 februari 2010 1 Inleiding 1.1 Doel Voor de cryptografie is het gebruik van goede random generators voor het genereren van keys cruciaal. Er zijn verschillende

Nadere informatie

Algoritmes en Priemgetallen. Hoe maak je een sleutelpaar voor RSA?

Algoritmes en Priemgetallen. Hoe maak je een sleutelpaar voor RSA? Algoritmes en Priemgetallen Hoe maak je een sleutelpaar voor RSA? Het recept van RSA Kies p q priemgetallen en bepaal N = pq Kies e Z N (publieke sleutel) Bepaal d e 1 mod φ N (privésleutel) x ed x kφ

Nadere informatie

les 2 toeval en waarschijnlijkheid

les 2 toeval en waarschijnlijkheid systemen ams blok 1 les 2 toeval en waarschijnlijkheid bestaat toeval? toevallig stond er deze week een artikel over toeval in de volkskrant maar was dit wel toeval? was het voorbestemd? wat is

Nadere informatie

Random-Getallen. Tristan Demont en Mark van der Boor en

Random-Getallen. Tristan Demont en Mark van der Boor en Random-Getallen Tristan Demont en Mark van der Boor 0768931 en 0772942 18 januari 2013 Begeleider: Relinde Jurrius Opdrachtgever: Berry Schoenmakers Modelleren B, 2WH02 Technische Universiteit Eindhoven

Nadere informatie

Interim-verslag Random-Getallen

Interim-verslag Random-Getallen Interim-verslag Random-Getallen Tristan Demont en Mark van der Boor 0768931 en 0772942 26 oktober 2012 Begeleider: Relinde Jurrius Opdrachtgever: Berry Schoenmakers Modelleren B, 2WH02 Technische Universiteit

Nadere informatie

Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege.

Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege. Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege. Kijk het huiswerk van je collega s na en schrijf de namen van de nakijkers linksboven en het totaalcijfer rechts onder de namen

Nadere informatie

Java Les 3 Theorie Herhaal structuren

Java Les 3 Theorie Herhaal structuren Java Les 3 Theorie Herhaal structuren Algemeen Een herhaal structuur een is programmeertechniek waarbij bepaalde Java instructies worden herhaald net zo lang tot een bepaalde voorwaarde is bereikt. Een

Nadere informatie

Getallenleer Inleiding op codeertheorie. Cursus voor de vrije ruimte

Getallenleer Inleiding op codeertheorie. Cursus voor de vrije ruimte Getallenleer Inleiding op codeertheorie Liliane Van Maldeghem Hendrik Van Maldeghem Cursus voor de vrije ruimte 2 Hoofdstuk 1 Getallenleer 1.1 Priemgetallen 1.1.1 Definitie en eigenschappen Een priemgetal

Nadere informatie

Probabilistische aspecten bij public-key crypto (i.h.b. RSA)

Probabilistische aspecten bij public-key crypto (i.h.b. RSA) p. 1/21 Probabilistische aspecten bij public-key crypto (i.h.b. RSA) Herman te Riele, CWI Amsterdam Nationale Wiskunde Dagen Noordwijkerhout, 31 januari 2015 p. 2/21 verzicht Binair exponentiëren RSA Factorisatie-algoritmen

Nadere informatie

RSA. F.A. Grootjen. 8 maart 2002

RSA. F.A. Grootjen. 8 maart 2002 RSA F.A. Grootjen 8 maart 2002 1 Delers Eerst wat terminologie over gehele getallen. We zeggen a deelt b (of a is een deler van b) als b = qa voor een of ander geheel getal q. In plaats van a deelt b schrijven

Nadere informatie

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens Algoritmes in ons dagelijks leven Leve de Wiskunde! 7 April 2017 Jacobien Carstens Wat is een algoritme? Een algoritme is een eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd

Nadere informatie

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie

Nadere informatie

2 n 1. OPGAVEN 1 Hoeveel cijfers heeft het grootste bekende Mersenne-priemgetal? Met dit getal vult men 320 krantenpagina s.

2 n 1. OPGAVEN 1 Hoeveel cijfers heeft het grootste bekende Mersenne-priemgetal? Met dit getal vult men 320 krantenpagina s. Hoofdstuk 1 Getallenleer 1.1 Priemgetallen 1.1.1 Definitie en eigenschappen Een priemgetal is een natuurlijk getal groter dan 1 dat slechts deelbaar is door 1 en door zichzelf. Om technische redenen wordt

Nadere informatie

Tweede Toets Security 9 november 2016, , Educ-α.

Tweede Toets Security 9 november 2016, , Educ-α. Tweede Toets Security 9 november 2016, 8.30 10.30, Educ-α. Motiveer je antwoorden kort! Zet je mobiel uit. Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je

Nadere informatie

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding: Programmeren A Genetisch Programma voor het Partitie Probleem begeleiding: Inleiding Het Partitie Probleem luidt als volgt: Gegeven een verzameling van n positieve integers, vindt twee disjuncte deelverzamelingen

Nadere informatie

OPLOSSINGEN VAN DE OEFENINGEN

OPLOSSINGEN VAN DE OEFENINGEN OPLOSSINGEN VAN DE OEFENINGEN 1.3.1. Er zijn 42 mogelijke vercijferingen. 2.3.4. De uitkomsten zijn 0, 4 en 4 1 = 4. 2.3.6. Omdat 10 = 1 in Z 9 vinden we dat x = c 0 +... + c m = c 0 +... + c m. Het getal

Nadere informatie

Functioneel programmeren

Functioneel programmeren Functioneel programmeren Practicumopgave 2: Mastermind Het doel van deze opgave is het implementeren van het spel Mastermind; zie http://nl.wikipedia.org/wiki/mastermind voor een uitleg. Het spel is klein

Nadere informatie

Willekeurige Getallen

Willekeurige Getallen Willekeurige Getallen Creatie en gebruik van willekeurige getallen door computers Eindwerk voorgedragen door Frederik De Paepe tot het behalen van het diploma Bachelor in Grafische en Digitale Media afstudeerrichting

Nadere informatie

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12 Katern 2 Getaltheorie Inhoudsopgave 1 Delers 1 2 Deelbaarheid door 2, 3, 5, 9 en 11 6 3 Grootste gemene deler en kleinste gemene veelvoud 12 1 Delers In Katern 1 heb je geleerd wat een deler van een getal

Nadere informatie

Opgaven Eigenschappen van Getallen Security, 2018, Werkgroep.

Opgaven Eigenschappen van Getallen Security, 2018, Werkgroep. Opgaven Eigenschappen van Getallen Security, 2018, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht

Nadere informatie

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands svegmond@liacs.nl 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse

Nadere informatie

Elliptische krommen en digitale handtekeningen in Bitcoin

Elliptische krommen en digitale handtekeningen in Bitcoin Elliptische krommen en digitale handtekeningen in Bitcoin Bas Edixhoven Universiteit Leiden KNAW Bitcoin symposium Deze aantekeningen zal ik op mijn homepage plaatsen. Bas Edixhoven (Universiteit Leiden)

Nadere informatie

De wiskunde achter de Bitcoin

De wiskunde achter de Bitcoin De wiskunde achter de Bitcoin Bas Edixhoven Universiteit Leiden NWD, Noordwijkerhout, 2015/01/31 Deze aantekeningen zal ik op mijn homepage plaatsen. Bas Edixhoven (Universiteit Leiden) De wiskunde achter

Nadere informatie

Bij elkaar behorende instructies die een probleem oplossen of een taak uitvoeren.

Bij elkaar behorende instructies die een probleem oplossen of een taak uitvoeren. 1 Programma Structuur Diagram: Een gestructureerd programma is een programma dat we gemakkelijk kunnen begrijpen. Dit kunnen we bereiken door het programma op te bouwen uit drie programmacomponenten: Als

Nadere informatie

Opgeloste en onopgeloste mysteries in de getaltheorie

Opgeloste en onopgeloste mysteries in de getaltheorie Opgeloste en onopgeloste mysteries in de getaltheorie Jan De Beule, Tom De Medts en Jeroen Demeyer Voorwoord 1 Voorwoord Beste leerling, Deze nota s zijn bedoeld als begeleiding bij 6 lesuren Opgeloste

Nadere informatie

Concept. Inleiding. Advies. Agendapunt: 04 Bijlagen: - College Standaardisatie

Concept. Inleiding. Advies. Agendapunt: 04 Bijlagen: - College Standaardisatie Forum Standaardisatie Wilhelmina v Pruisenweg 104 2595 AN Den Haag Postbus 84011 2508 AA Den Haag www.forumstandaardisatie.nl COLLEGE STANDAARDISATIE Concept CS07-05-04I Agendapunt: 04 Bijlagen: - Aan:

Nadere informatie

Practicumopgave 3: SAT-solver

Practicumopgave 3: SAT-solver Practicumopgave 3: SAT-solver Modelleren en Programmeren 2015/2016 Deadline: donderdag 7 januari 2016, 23:59 Introductie In het vak Inleiding Logica is onder andere de propositielogica behandeld. Veel

Nadere informatie

Verzamelingen, Lijsten, Functioneel Programmeren

Verzamelingen, Lijsten, Functioneel Programmeren Verzamelingen, Lijsten, Functioneel Programmeren Jan van Eijck jve@cwi.nl Lezing 4e Gymnasium, 19 november 2015 Samenvatting In deze lezing gaan we in op de overeenkomsten en verschillen tussen verzamelingen

Nadere informatie

Geldwisselprobleem van Frobenius

Geldwisselprobleem van Frobenius Geldwisselprobleem van Frobenius Karin van de Meeberg en Dieuwertje Ewalts 12 december 2001 1 Inhoudsopgave 1 Inleiding 3 2 Afspraken 3 3 Is er wel zo n g? 3 4 Eén waarde 4 5 Twee waarden 4 6 Lampenalgoritme

Nadere informatie

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Uitwerking tentamen Analyse van Algoritmen, 29 januari Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4

Nadere informatie

Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 5: Functies voor getallen en teksten Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, maart 2001 Hoofdstuk 5: Functies voor getallen en teksten

Nadere informatie

Public Key Cryptography. Wieb Bosma

Public Key Cryptography. Wieb Bosma Public Key Cryptography de wiskunde van het perfecte kopje koffie Wieb Bosma Radboud Universiteit Nijmegen Bachelordag 2 april 2011 Nijmegen, 6 november 2010 0 Nijmegen, 6 november 2010 1 cryptografie

Nadere informatie

Worteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen

Worteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen Worteltrekken modulo een priemgetal: van klok tot cutting edge Roland van der Veen Modulorekenen Twee getallen a en b zijn gelijk modulo p als ze een veelvoud van p verschillen. Notatie: a = b mod p Bijvoorbeeld:

Nadere informatie

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen ( 15 x 3 = 45

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen (  15 x 3 = 45 15 x 3 = 45 2.1 Bewerkingen [1] Video Geschiedenis van het rekenen (http://www.youtube.com/watch?v=cceqwwj6vrs) 15 x 3 is een product. 15 en 3 zijn de factoren van het product. 15 : 3 = 5 15 : 3 is een

Nadere informatie

slides10.pdf December 5,

slides10.pdf December 5, Onderwerpen Inleiding Algemeen 10 Cryptografie Wat is cryptography? Waar wordt cryptografie voor gebruikt? Cryptographische algoritmen Cryptographische protocols Piet van Oostrum 5 dec 2001 INL/Alg-10

Nadere informatie

Maak zelf een algoritme wanneer je een auto kunt winnen en welke auto je wint.

Maak zelf een algoritme wanneer je een auto kunt winnen en welke auto je wint. Programmeeropdracht Versie 1 We spelen een soort Rad van fortuin : De computer kiest een getal van 1.. 50 Maak 3 tabellen: Tabel : Auto is gevuld met 5 auto s Tabel : Reizen is gevuld met 5 reizen, Tabel

Nadere informatie

Overzicht. Random nummer generatie. Waarom? Waarom? VU Numeriek Programmeren 2.5

Overzicht. Random nummer generatie. Waarom? Waarom? VU Numeriek Programmeren 2.5 Overzicht Random nummer generatie VU Numeriek Programmeren 2. Charles Bos Vrije Universiteit Amsterdam c.s.bos@vu.nl, A4 Waarom? U[, ]: LCG Test verdeling Transformeer naar andere verdelingen 23 april

Nadere informatie

Verzamelingen, Lijsten, Functioneel Programmeren

Verzamelingen, Lijsten, Functioneel Programmeren Verzamelingen, Lijsten, Functioneel Programmeren Jan van Eijck jve@cwi.nl Stage Ignatiuscollege, 17 mei 2010 Samenvatting In deze lezing gaan we in op de overeenkomsten en verschillen tussen verzamelingen

Nadere informatie

VBA voor doe het Zelvers deel 22. Handleiding van Helpmij.nl. Auteur: leofact

VBA voor doe het Zelvers deel 22. Handleiding van Helpmij.nl. Auteur: leofact VBA voor doe het Zelvers deel 22 Handleiding van Helpmij.nl Auteur: leofact december 2015 Vorige aflevering In de vorige aflevering werden de regular expressions behandeld. Voor VBA zijn deze beschikbaar

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 5: Timers/counters & Interrupts Timers/counters Hardware timers/counters worden in microcontrollers gebruikt om onafhankelijk van de CPU te tellen. Hierdoor kunnen andere

Nadere informatie

Profielwerkstuk Informatica en Wiskunde Is RSA-cryptografie nu veilig genoeg en wat betekent dit voor de toekomst van digitale beveiliging?

Profielwerkstuk Informatica en Wiskunde Is RSA-cryptografie nu veilig genoeg en wat betekent dit voor de toekomst van digitale beveiliging? Profielwerkstuk Informatica en Wiskunde Is RSA-cryptografie nu veilig genoeg en wat betekent dit voor de toekomst van digitale beveiliging? Door Nahom Tsehaie en Jun Feng Begeleiders: David Lans en Albert

Nadere informatie

Friendly Functions and Shared BDD s

Friendly Functions and Shared BDD s Friendly Functions and Shared BDD s Bob Wansink 19 Juni 2010 Deze notitie behandelt pagina s 81 tot 84 van The Art of Computer Programming, Volume 4, Fascicle 1 van Donald E. Knuth. Inhoudelijk gaat het

Nadere informatie

Het programma ELGAMAL

Het programma ELGAMAL Het programma ELGAMAL Gerard Tel Universiteit Utrecht, Departement Informatica 21 oktober 2005 Dit boekje is een inhoudelijke beschrijving van het programma ELGAMAL dat door Gerard Tel is geschreven voor

Nadere informatie

PG blok 4 werkboek bijeenkomst 4 en 5

PG blok 4 werkboek bijeenkomst 4 en 5 2015-2015 PG blok 4 werkboek bijeenkomst 4 en 5 Inhoud Kenmerken van deelbaarheid (herhaling)...1 Ontbinden in factoren...1 Priemgetallen (herhaling)...2 Ontbinden in priemfactoren...2 KGV (Kleinste Gemene

Nadere informatie

FACTORISATIE EN CRYPTOGRAFIE

FACTORISATIE EN CRYPTOGRAFIE FACTORISATIE EN CRYPTOGRAFIE COMPUTERPRACTICUM UvA-MASTERCLASS WISKUNDE 1993 G.C.M. Ruitenburg Faculteit Wiskunde en Informatica Universiteit van Amsterdam 1993 INLEIDING In dit computer prakticum volgen

Nadere informatie

Algoritmes voor Priemgetallen

Algoritmes voor Priemgetallen Algoritmes voor Priemgetallen Tom van der Zanden Projectje Security, juni 2013 1 Introductie Voor cryptograe zijn priemgetallen erg belangrijk. Veel encryptiesystemen maken gebruik van hun eigenschappen

Nadere informatie

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Rick van der Zwet 8 december 2010 Samenvatting Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek [JS2009]

Nadere informatie

3. Structuren in de taal

3. Structuren in de taal 3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we

Nadere informatie

Opdracht 2. Deadline maandag 28 september 2015, 24:00 uur.

Opdracht 2. Deadline maandag 28 september 2015, 24:00 uur. Opdracht 2. Deadline maandag 28 september 2015, 24:00 uur. Deze opdracht bestaat uit vier onderdelen; in elk onderdeel wordt gevraagd een Matlabprogramma te schrijven. De vier bijbehore bestanden stuur

Nadere informatie

SERVICE LEVEL AGREEMENT SERVICE LEVEL AGREEMENT ADDENDUM VIRTUALISATIE VERSIE

SERVICE LEVEL AGREEMENT SERVICE LEVEL AGREEMENT ADDENDUM VIRTUALISATIE VERSIE SERVICE LEVEL AGREEMENT SERVICE LEVEL AGREEMENT ADDENDUM VIRTUALISATIE VERSIE 2014-05-28 Inhoudsopgave 1. Definities...3 1.1. Control Panel...3 1.2. CPU...3 1.3. CPU core...3 1.4. Dienst...3 1.5. I/O-operaties...3

Nadere informatie

Modulair rekenen en de Montgomery vermenigvuldiging

Modulair rekenen en de Montgomery vermenigvuldiging Modulair rekenen en de Montgomery vermenigvuldiging Inleiding door Theo Kortekaas Modulair rekenen is rekenen met resten. Als we een vliegreis maken van 31 uur en we vertrekken vandaag om 12:00 uur dan

Nadere informatie

Oplossingen Datamining 2II15 Juni 2008

Oplossingen Datamining 2II15 Juni 2008 Oplossingen Datamining II1 Juni 008 1. (Associatieregels) (a) Zijn de volgende beweringen juist of fout? Geef een korte verklaring voor alle juiste beweringen en een tegenvoorbeeld voor alle foute be-weringen:

Nadere informatie

Forum Standaardisatie. Expertadvies: Vervanging MD5 door SHA 2 op lijst met gangbare standaarden. Datum 5 augustus 2010

Forum Standaardisatie. Expertadvies: Vervanging MD5 door SHA 2 op lijst met gangbare standaarden. Datum 5 augustus 2010 Forum Standaardisatie Expertadvies: Vervanging MD5 door SHA 2 op lijst met gangbare standaarden Datum 5 augustus 2010 Colofon Projectnaam Versienummer Locatie Organisatie Expertadvies: Vervanging MD5 door

Nadere informatie

Getaltheorie groep 3: Primitieve wortels

Getaltheorie groep 3: Primitieve wortels Getaltheorie groep 3: Primitieve wortels Trainingsweek juni 2008 Inleiding Voor a relatief priem met m hebben we de orde van a modulo m gedefinieerd als ord m (a) = min { n Z + a n 1 (mod m) }. De verzameling

Nadere informatie

Zwakke sleutels voor RSA

Zwakke sleutels voor RSA Zwakke sleutels voor RSA Benne de Weger, Mike Boldy en Hans Sterk 23 juni 2008 Zwakke sleutels voor RSA Benne de Weger, Mike Boldy en Hans Sterk 23 juni 2008 RSA: beroemd cryptosysteem Genoemd naar Rivest,

Nadere informatie

algoritmiek - antwoorden

algoritmiek - antwoorden 2016 algoritmiek - antwoorden F. Vonk versie 1 28-8-2016 inhoudsopgave eenvoudige algoritmes... - 3 - complexe algoritmes... - 7 - zoeken (vwo)... - 10 - sorteren (vwo)... - 12 - Dit werk is gelicenseerd

Nadere informatie

Tweede Deeltoets Security 3 juli 2015, 8.30 10.30, Educatorium-Γ.

Tweede Deeltoets Security 3 juli 2015, 8.30 10.30, Educatorium-Γ. Tweede Deeltoets Security 3 juli 2015, 8.30 10.30, Educatorium-Γ. Motiveer je antwoorden kort! Zet je mobiel uit. Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op

Nadere informatie

Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden.

Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Uitleg Welkom bij de Beverwedstrijd 2006 Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Je krijgt 5 vragen van niveau A, 5 vragen van niveau B en 5 vragen van niveau C. Wij denken

Nadere informatie

Uitwerkingen oefeningen hoofdstuk 1

Uitwerkingen oefeningen hoofdstuk 1 Uitwerkingen oefeningen hoofdstuk 1 1.4.1 Basis Oefeningen Romeinse cijfers 1 Op deze zonnewijzer staan achtereenvolgens de getallen: I (= 1) II (= 2) III (= 3) IV (= 4) V (= 5) VI (= 6) VII (= 7) VIII

Nadere informatie

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? Hoofdstuk 3: Processen: Beschrijving en Besturing Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? 1 Wat is een proces? Een proces is een programma in uitvoering

Nadere informatie

Android apps met App Inventor 2 antwoorden

Android apps met App Inventor 2 antwoorden 2014 Android apps met App Inventor 2 antwoorden F. Vonk versie 1 11-11-2014 inhoudsopgave Mollen Meppen... - 2 - Schrandere Scholier... - 15 - Meteoor... - 21 - Dit werk is gelicenseerd onder een Creative

Nadere informatie

Combinatoriek groep 1

Combinatoriek groep 1 Combinatoriek groep 1 Recursie Trainingsweek, juni 009 Stappenplan homogene lineaire recurrente betrekkingen Even herhalen: het stappenplan om een recurrente betrekking van orde op te lossen: Stap 1. Bepaal

Nadere informatie

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Rick van der Zwet 13 november 2010 Samenvatting Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek [JS2009]

Nadere informatie

Algoritmen en programmeren: deel 2 - basis

Algoritmen en programmeren: deel 2 - basis Algoritmen en programmeren: deel 2 - basis Ruud van Damme Creation date: 25 april 2005 Update: 16 november 2006, 9 september 2007 Overzicht 1 Basisbenodigdheden voor alle problemen 2 Alles in stukjes op

Nadere informatie

Verzamelingen, Lijsten, Functioneel Programmeren

Verzamelingen, Lijsten, Functioneel Programmeren Verzamelingen, Lijsten, Functioneel Programmeren Jan van Eijck jve@cwi.nl Stage Ignatiuscollege, 20 mei 2008 Samenvatting In deze lezing gaan we in op de overeenkomsten en verschillen tussen verzamelingen

Nadere informatie

Combinatoriek groep 1 & 2: Recursie

Combinatoriek groep 1 & 2: Recursie Combinatoriek groep 1 & : Recursie Trainingsweek juni 008 Inleiding Bij een recursieve definitie van een rij wordt elke volgende term berekend uit de vorige. Een voorbeeld van zo n recursieve definitie

Nadere informatie

Stoomboot & de toekomst

Stoomboot & de toekomst Stoomboot & de toekomst W. Verkerke (ATLAS) Wat is stoomboot Gebruikers definitie van concept stoomboot Op basis van gesprekken met ATLAS/LHCb/ALICE/Astro Lokale batch faciliteit met de volgende definierende

Nadere informatie

Datacommunicatie Cryptografie en netwerkbeveiliging

Datacommunicatie Cryptografie en netwerkbeveiliging Datacommunicatie Cryptografie en netwerkbeveiliging ir. Patrick Colleman Inhoud Voorwoord 1 1. Inleiding Wat 2 2. Model 5 3. Systemen 5 3.1 Substitutiesystemen 6 3.1.1 Caesar 6 3.1.2 Monoalfabetische vercijfering

Nadere informatie

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007 Uitgebreide uitwerking Tentamen Complexiteit, mei 007 Opgave. a. Een beslissingsboom beschrijft de werking van het betreffende algoritme (gebaseerd op arrayvergelijkingen) op elke mogelijke invoer. In

Nadere informatie

Hoe je het cryptosysteem RSA soms kunt kraken. Benne de Weger

Hoe je het cryptosysteem RSA soms kunt kraken. Benne de Weger Hoe je het cryptosysteem RSA soms kunt kraken Benne de Weger 28 aug. / 4 sept. RSA 1/38 asymmetrisch cryptosysteem versleutelen met de publieke sleutel ontsleutelen met de bijbehorende privé-sleutel gebaseerd

Nadere informatie

Hoofdstuk 9. Hashing

Hoofdstuk 9. Hashing Hoofdstuk 9 Hashing Het zoeken in een verzameling van één object is in deze cursus al verschillende malen aan bod gekomen. In hoofdstuk 2 werd uitgelegd hoe men een object kan zoeken in een array die veel

Nadere informatie

Cover Page. The handle holds various files of this Leiden University dissertation.

Cover Page. The handle  holds various files of this Leiden University dissertation. Cover Page The handle http://hdl.handle.net/1887/20310 holds various files of this Leiden University dissertation. Author: Jansen, Bas Title: Mersenne primes and class field theory Date: 2012-12-18 Samenvatting

Nadere informatie

Beste deelnemer, Wanneer we vanmiddag op het kampterrein aankomen, zullen we beginnen met een verkenningsrondje over het terrein. Dat is op zichzelf

Beste deelnemer, Wanneer we vanmiddag op het kampterrein aankomen, zullen we beginnen met een verkenningsrondje over het terrein. Dat is op zichzelf Beste deelnemer, Wanneer we vanmiddag op het kampterrein aankomen, zullen we beginnen met een verkenningsrondje over het terrein. Dat is op zichzelf al best leuk, maar het wordt nog veel leuker als we

Nadere informatie

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht. 4 Modulair rekenen Oefening 4.1. Merk op dat 2 5 9 2 2592. Bestaat er een ander getal van de vorm 25ab dat gelijk is aan 2 5 a b? (Met 25ab bedoelen we een getal waarvan a het cijfer voor de tientallen

Nadere informatie

In deze les. Het experiment. Hoe bereid je het voor? Een beetje wetenschapsfilosofie. Literatuuronderzoek (1) Het onderwerp.

In deze les. Het experiment. Hoe bereid je het voor? Een beetje wetenschapsfilosofie. Literatuuronderzoek (1) Het onderwerp. In deze les Het experiment Bart de Boer Hoe doe je een experiment? Hoe bereid je het voor? De probleemstelling Literatuuronderzoek Bedenken/kiezen experimentele opstelling Bedenken/kiezen analysevorm Hoe

Nadere informatie

Opgaven Getaltheorie en Cryptografie (deel 4) Inleverdatum: 13 mei 2002

Opgaven Getaltheorie en Cryptografie (deel 4) Inleverdatum: 13 mei 2002 Opgaven Getaltheorie en Cryptografie (deel 4) Inleverdatum: 13 mei 2002 19.a) Laat zien dat 5 een voortbrenger is van F 37. b) In het sleuteldistributiesysteem van Diffie en Hellman (met G = F 37, α =

Nadere informatie

Haskell: programmeren in een luie, puur functionele taal

Haskell: programmeren in een luie, puur functionele taal Haskell: programmeren in een luie, puur functionele taal Jan van Eijck jve@cwi.nl 5 Talen Symposium, 12 juli 2010 Samenvatting In deze mini-cursus laten we zien hoe je met eindige en oneindige lijsten

Nadere informatie

extra oefening algoritmiek - antwoorden

extra oefening algoritmiek - antwoorden extra oefening algoritmiek - antwoorden opgave "Formule 1" Maak een programma dat de gebruiker drie getal A, B en C in laat voeren. De gebruiker zorgt ervoor dat er positieve gehele getallen worden ingevoerd.

Nadere informatie

Computerarchitectuur en netwerken Toets 1 4 okt

Computerarchitectuur en netwerken Toets 1 4 okt 11.00 13.00 De open vragen moet je beantwoorden op tentamenpapier. De multiple-choice antwoorden moet je op het vragenblad invullen in de rechtervakjes en dat blad inleveren. Schrijf je naam, studentnummer

Nadere informatie

Getaltheorie I. c = c 1 = 1 c (1)

Getaltheorie I. c = c 1 = 1 c (1) Lesbrief 1 Getaltheorie I De getaltheorie houdt zich bezig met het onderzoek van eigenschappen van gehele getallen, en meer in het bijzonder, van natuurlijke getallen. In de getaltheorie is het gebruikelijk

Nadere informatie

Rekenen: Getallen groep 5 en hoger. Rekenen en schattingen ontdekken. Algebra groep 5 en hoger. Patronen en relaties ontdekken.

Rekenen: Getallen groep 5 en hoger. Rekenen en schattingen ontdekken. Algebra groep 5 en hoger. Patronen en relaties ontdekken. Activiteit 4 Kaarten truc Fout opsporen & herstellen Samenvatting Wanneer data worden opgeslagen op een harde schijf of worden verzonden van de ene computer naar de andere, nemen we aan dat de data niet

Nadere informatie

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Module 3: Scratch programmeren: is het logisch of is het niet logisch? Module 3: Scratch programmeren: is het logisch of is het niet logisch? Inhoudsopgave Module 3: Scratch programmeren: is het logisch of is het niet logisch?...1 Wat is een computerprogramma eigenlijk?...2

Nadere informatie

Priemgetallen. van nutteloos tot staatsgevaarlijk? Wieb Bosma. Nijmeegse Tweedaagse Radboud Universiteit

Priemgetallen. van nutteloos tot staatsgevaarlijk? Wieb Bosma. Nijmeegse Tweedaagse Radboud Universiteit Priemgetallen van nutteloos tot staatsgevaarlijk? Wieb Bosma Nijmeegse Tweedaagse Radboud Universiteit Nijmegen oktober 2008 Priemgetallen 2 Voorwoord Dit zijn de aantekeningen bij één van de twee onderwerpen

Nadere informatie

Cryptografie met krommen. Reinier Bröker. Universiteit Leiden

Cryptografie met krommen. Reinier Bröker. Universiteit Leiden Cryptografie met krommen Reinier Bröker Universiteit Leiden Nationale Wiskundedagen Februari 2006 Cryptografie Cryptografie gaat over geheimschriften en het versleutelen van informatie. Voorbeelden. Klassieke

Nadere informatie

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht. 4 Modulair rekenen Oefening 4.1. Merk op dat 2 5 9 2 = 2592. Bestaat er een ander getal van de vorm 25ab dat gelijk is aan 2 5 a b? (Met 25ab bedoelen we een getal waarvan a het cijfer voor de tientallen

Nadere informatie

Lab Webdesign: Javascript 3 maart 2008

Lab Webdesign: Javascript 3 maart 2008 H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen

Nadere informatie

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens Info-books AL20 Toegepaste Informatica Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) Jos Gils Erik Goossens Hoofdstuk 6 Lusstructuren of iteraties 6.1 Probleemstelling Het gebeurt dikwijls

Nadere informatie

Praktische opdracht Wiskunde som van de ogen van drie dobbelstenen

Praktische opdracht Wiskunde som van de ogen van drie dobbelstenen Praktische opdracht Wiskunde som van de ogen van drie dobbelstenen Praktische-opdracht door een scholier 918 woorden 17 maart 2002 4,9 60 keer beoordeeld Vak Wiskunde Inleiding Wij hebben gekozen voor

Nadere informatie

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA. Week 5: Functies (vervolg) Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def

Nadere informatie

Projectplan. Joost Besseling Coen Boot Michiel Doorn Jorrit Dorrestijn Rens de Heer Joost Houben

Projectplan. Joost Besseling Coen Boot Michiel Doorn Jorrit Dorrestijn Rens de Heer Joost Houben Projectplan Joost Besseling Coen Boot Michiel Doorn Jorrit Dorrestijn Rens de Heer Joost Houben November 2013 1. Inhoud: 1. Inhoud:... 2 2. Inleiding... 3 3. Doel... 3 4. Analyse (Use Cases)... 3 4.1.

Nadere informatie

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40 Recursion Introductie 37 Leerkern 37 5.1 Foundations of recursion 37 5.2 Recursive analysis 37 5.3 Applications of recursion 38 Terugkoppeling 40 Uitwerking van de opgaven 40 Hoofdstuk 5 Recursion I N

Nadere informatie

Stoomcursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO ( ) = = ( ) ( ) ( ) = ( ) ( ) = ( ) = = ( )

Stoomcursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO ( ) = = ( ) ( ) ( ) = ( ) ( ) = ( ) = = ( ) Voorbereidende opgaven VWO Stoomcursus wiskunde A Tips: Maak de voorbereidende opgaven voorin in een van de A4-schriften die je gaat gebruiken tijdens de cursus. Als een opdracht niet lukt, werk hem dan

Nadere informatie

Zoek- en sorteeralgoritmen en hashing

Zoek- en sorteeralgoritmen en hashing Zoek- en sorteeralgoritmen en hashing Femke Berendsen (3689301) en Merel van Schieveen (3510190) 9 april 2013 1 Inhoudsopgave 1 Inleiding 3 2 Zoek- en sorteeralgoritmen 3 2.1 Grote O notatie..........................

Nadere informatie

Opgaven Rekenen met Getallen Security, 2018, Werkgroep.

Opgaven Rekenen met Getallen Security, 2018, Werkgroep. Opgaven Rekenen met Getallen Security, 2018, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht opgaven.

Nadere informatie

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 ) OI 2010 Finale 12 Mei 2010 Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub VOORNAAM :....................................................... NAAM :..............................................................

Nadere informatie

1 Rekenen met gehele getallen

1 Rekenen met gehele getallen 1 Inhoudsopgave 1 Rekenen met gehele getallen... 1.1 De gehele getallen... 1. Optellen... 1. Opgaven... 1. Aftrekken... 1. Opgaven... 1. Vermenigvuldigen... 1. Opgaven... 1.8 Delen... 9 1.9 Opgaven...9

Nadere informatie

HET BESTURINGSSYSTEEM

HET BESTURINGSSYSTEEM HET BESTURINGSSYSTEEM Een besturingssysteem (ook wel: bedrijfssysteem, in het Engels operating system of afgekort OS) is een programma (meestal een geheel van samenwerkende programma's) dat na het opstarten

Nadere informatie

Priemfactoren. Grote getallen. Geavanceerde methoden. Hoe ontbind je een getal N in priemfactoren?

Priemfactoren. Grote getallen. Geavanceerde methoden. Hoe ontbind je een getal N in priemfactoren? Docentenhandleiding Inhoudsopgave Docentenhandleiding... 1 Inhoudsopgave... 2 Priemfactoren... 3 Grote getallen... 3 Geavanceerde methoden... 3 Primaliteit en factorisatie... 4 Literatuur... 4 Software...

Nadere informatie

Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4

Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4 Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4 Jonathan K. Vis 1 Inleiding (blz. 70 72) In dit essay behandelen we bladzijden 70 75 van Donald E. Knuth

Nadere informatie

Universiteit Gent. Academiejaar Discrete Wiskunde. 1ste kandidatuur Informatica. Collegenota s. Prof. Dr.

Universiteit Gent. Academiejaar Discrete Wiskunde. 1ste kandidatuur Informatica. Collegenota s. Prof. Dr. Universiteit Gent Academiejaar 2001 2002 Discrete Wiskunde 1ste kandidatuur Informatica Collegenota s Prof. Dr. Frank De Clerck Herhalingsoefeningen 1. Bepaal het quotiënt en de rest van de deling van

Nadere informatie