<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\07512969692\46blogName\75Learning+Strategies\46publishMode\75PUBLISH_MODE_BLOGSPOT\46navbarType\75BLUE\46layoutType\75CLASSIC\46searchRoot\75http://larrydavidson.blogspot.com/search\46blogLocale\75en_US\46v\0752\46homepageUrl\75http://larrydavidson.blogspot.com/\46vt\07553093167121198245', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

Friday, July 25, 2008

Teaching RSA in high school

By this point I’ve taught simplified versions of the RSA algorithm to ten different cohorts of teens: four years’ worth of Honors Algebra II students at Weston High School, juniors for four summers at Crimson Summer Academy, and two years’ worth of college-prep Algebra II students at Weston. Tweaking the details as I’ve gone along, and benefitting from changes in technology, I’ve learned a lot from these experiences.

There are several types of benefits for the students. Some benefits are conceptual, involving understanding ideas about public-key cryptography, ranging from technical questions like how a cryptosystem can use a public key, why that’s necessary, and why it’s secure, to public-interest issues like whether we can trust so-called “secure” financial transactions on the Internet. I could have predicted these benefits; the unit was designed to try to achieve them, after all. And I could have predicted the success of some of the more concrete mathematical benefits as well, since RSA involves exponentiation, prime numbers, modular arithmetic, factoring, representation of characters as integers, and other operations with numbers. But a third type of benefit is more of a surprise: because the technical details are complicated, and even a single mistake can doom the effort to failure, most of my students have been doggedly persistent in paying attention to details and getting them right. Too often we can fall into the trap parodied by Tom Lehrer: “The important thing is to understand what you’re doing rather than to get the right answer.” We give so much partial credit that a student can get a B without ever producing a correct result. Part of the way that my colleagues and I have avoided this trap with RSA is that our sequence of activities and assignments concludes with a two-way exchange of messages: each student sends me a message using my public key, and I reply with a message using the student’s public key. This gives everyone practice in figuring out their private and public keys, enciphering, and deciphering. But fewer than half the kids get it right the first time, since there are so many opportunities to make mistakes. Unlike the usual math problem, they can’t settle for having a couple of points taken off; the message simply won’t work. So they try over and over again — sometimes four or five times — in order to get it right. If they don’t, I can’t read their message, or they can’t read mine.

If you’re interested in checking out how I’ve simplified RSA so it can be studied at the level of Algebra II, take a look at my worksheets, starting at RSA Phase One. (If you keep incrementing the “1” in that URL, you’ll find the next three worksheets at the expected URLs.)

Labels: , ,


ARCHIVES

This page is powered by Blogger. Isn't yours? Made with Macintosh