CS3343/3341
 Analysis of Algorithms 
Weird Topic
  Subset Sum, and   
  Public Key Cryptography  


Subset Sum (SS), and Public Key Cryptography: Historically, SS was the basis for the first proposal of a practical public-key cryptosystem (PKC). NP-complete problems were thought to be a rich source of possible bases for PKCs.


Subset Sum (SS), New Notation: As before, start with an array A of positive integers, say a "toy" instance:

A sum is represented by a 0-1 vector, say

The sum is given by the inner produce:


Public-Key Cryptography: Now suppose Alice chooses an array A consisting of 100 200-bit integers (um, 60-digit). She publishes these numbers in a public directory as her public key. Bob wants to send her a 100-bit message. He lets X be the vector of his bits and calculates A*X, which he sends to Alice. Now Alice would need to solve the NP-complete SS problem in order to determine the message inside X. With a "normal" vector A, say a random one satisfying reasonable conditions, Alice would not be able to recover the X. But Alice instead has chosen a clever set of numbers that contains a secret "trapdoor", one that will let her solve the SS problem efficiently.

Let's continue the above "toy" SS instance using 4-digit numbers. Suppose Alice had originally choosen a secret instance:

This is a super-increasing sequence, for which the SS problem is easy to solve. Then Alice chooses secret numbers

All the arithmetic will be done mod m (that is, % m). There is a way to calculate a number w-1 with the property that

Alice lets A = w*A' mod m, which is the A above. Now Bob has sent the number s = 15115, which is a sum from the A array. Alice transforms s by calculating:

s' = 3797 is the corresponding sum in the A' array, and Alice easily calculates that

This last is Bob's message to Alice.


Revision date: 2012-11-16. (Please use ISO 8601, the International Standard Date and Time Notation.)