Playing with Technology

Any sufficiently advanced technology is indistinguishable from magic. ~Arthur C. Clarke

What is Open-Source Software?

Dr. Hornsten has asked me to talk about open-source software with you today. So let’s get started.

  • What do we mean by open-source?
  • Can you name two open-source software programs that you use on a daily basis?
  • Have you ever thought about what qualifies a program for open-source status?
  • Does open-source mean free?
    • It’s all about the license
      • Can you name some open-source licenses?
      • What in the heck is copyleft?
  • Do you read the EULA? What is an EULA?
  • Can you patent open-source software?
  • What is community source?

On a different note. What about mathematical algorithms, can they be patented?

The background. In the early 1970s several researchers were working on a way to send and receive messages electronically in a secure manner. The idea that developed was public key cryptography and was initially developed by Diffie, Hellman, and Merkel, but they couldn’t find an algorithm to make it work. Enter Rivest, Shamir, and Adelman.

The algorithm idea. It is really very simple and everyone should be able to understand the basics of how it works. Find two prime numbers p and q (Can anyone tell me what this means?) and multiply them together and call the answer n. Now find a number less than n and relatively prime (Can someone tell me what this means?) to (p-1)*(q-1) and call this number e. Now break the message into numbers Mi that are less than n and compute Mi^e mod n (What does mod mean?). This is the encrypted message. Through the magic of number theory we know that there is a number d so that (Mi^e)^d mod n will be Mi.

The patent. In 1981, after several key Federal Circuit Court decisions lead to the Freeman/Walter/Abele test for patentability and a US Supreme court decision Diamond v. Diehr, patent #4405829 “Cryptographic communications system and method” was issued for the RSA algorithm. These decisions are still reshaping the face of patent law. It is an interesting exercise to read the decisions and try to understand exactly how one can patent an algorithm. What do you think?