What is the default security level in Concrete ML?


I was looking through Concrete ML documentation and I am wondering what the default security level (e.g. 128 bits, 80 bits, etc) is in Concrete ML?

Are there any examples how to set up a specific one with the set_security_level function ((https://github.com/zama-ai/concrete/blob/main/compilers/concrete-compiler/compiler/lib/Bindings/Python/concrete/compiler/compilation_options.py#L268)?
If I want to use a ConcreteLogisticRegression or ConcreteXGBClassifier?

thank you.

Hello @bluetail14 .

It’s not possible to change the security level. It’s fixed at 128 bit of security. Possibly, in the future, we’ll allow to increase the security level (with like 192 or 256b) but already, 128b is a lot. About having smaller levels: not sure, it’s always dangerous, some inexperienced users may decrease the level “because it’s faster” without really understanding the consequences.

Why do you want to change the security level, by the way? LogisticRegression are really really fast (there is no PBS). Even XGB are quite fast (but here, there are PBS, and it depends on your ML hyper parameters)


yes, it is quite fast - my supervisor has suggested experimenting with security levels for my dissertation. I can do so in tenseal but not in concrete ml.

yes sorry, changing the security model will not be doable for the moment. Of course, reducing the security level would make things faster, but, you lose the security.