Given a set of strings $\{s_1, s_2, \cdots, s_n\}$, is there a way to encode them to a program $P$, such that given some string,$s$, the program can test the membership efficiently (deterministically or probabilistically), BUT no adversary can ever learn/extract any (member) strings from the program (in polynomial time)?Can we have such functions with computational assumptions (such that they are secure even in the post quantum regime)?Note: We can also entertain a program that takes, as input, a valid $s$ that is a member of P, to verify the membership of $s'$.
Existence of functions that only tests memberships without revealing any information about the members
data structures;reference request;strings;security;dictionaries