There are many constraints in the use of digital signatures. This paper proposes a new way of using digital signatures with some restrictions, i.e. set signatures. It works in such a way that when the signing algorithm is given, one can use it to create a valid signature on a message if and only if the message belongs to a pre-defined set, and given the information about the signing algorithm, it is computationally infeasible to create valid signatures on any other arbitrary messages outside of the set. This special property enables the signing algorithm to be made public, which seems to contradict with the traditional signature where a private key is needed, which must be kept secret. What makes the problem challenging is that the signing algorithm does not reveal the secret signing key, and hence forging normal signatures for arbitrary messages is computationally infeasible. In many cases, the signing algorithm does not reveal the elements in the authorized set. As an application of the new concept, set signatures for intelligent mobile agents committing "smaller than" condition is studied, which shows the applicability of set signatures on small sets.