Machine Learning with Encrypted Data | Homomorphic Encryption

Поділитися
Вставка
  • Опубліковано 29 чер 2024
  • The world is changing and privacy is becoming a huge concern. The area of machine learning on encrypted data is booming and expected to grow significantly over the next 5 years. If you want to stay ahead of the curve then get educated. Here is a video to get you started
    In this video we will build a machine learning model and apply it to encrypted data using homomorphic encryption using the Paillier crypto system .
    Code can be found on my github: github.com/satssehgal/Homomor...
    👉 Patreon: patreon.com/SATSifaction
    👉 Facebook Group: / theaiwarriors
    👉 Instagram: @theaiwarriors
    👉 Corporate Training and Up skilling: levers.ai
    Netfirms (Affiliate) - bit.ly/2KdJ4Dp
    Linode Server - bit.ly/2XpqGi9
    Bluehost (Affiliate) - bit.ly/2GxxBh1
    PythonAnywhere (Affiliate) - bit.ly/2kWORVe
    Heroku - www.heroku.co
    NordVPN (Affiliate) - bit.ly/2W87je0
    ✅ Here is a link to my python for beginners, master python course: bit.ly/2HIZS42
  • Навчання та стиль

КОМЕНТАРІ • 34

  • @stepanzilka5229
    @stepanzilka5229 2 роки тому +5

    Amazing video, easy to try and understand even for 1-day Python programmers with their own data.

  • @aligulaj
    @aligulaj 3 роки тому +1

    This is interesting and will definitely delve into this

  • @satanumaity40
    @satanumaity40 5 місяців тому

    A perfect start for this domain

  • @danbolser5913
    @danbolser5913 Рік тому

    Thanks for this vid, good to see a 'real' example. The nice thing about a linear model is that you can get a result with multiplication alone, does the same apply for categorical regression?

  • @basilyancho4574
    @basilyancho4574 3 роки тому

    Great work sir, please is there a possibility for me to have the codes and the dataset so i can try to implement it on my laptop? thanks while waiting

  • @macknightxu2199
    @macknightxu2199 Рік тому

    Hi, is there any other video about this topic? especially the practical type. Do you know which company used such a process in this video?

  • @murtadha.j
    @murtadha.j Рік тому +1

    Have you applied pyfhel library anywhere?

  • @kumarmv5705
    @kumarmv5705 3 роки тому

    nice video sir... I tried executing the code in my laptop.... model creation and coefficients are also generated.. in cust.py code both public and private keys are generated, cust.json file is created. But "data.json" file when i opened it is blank... but in this video you are showing the encrypted form of data, but i getting it empty...
    I am getting error as "TypeError: Object of type function is not JSON serializable". please help me out in this regard, sir...

  • @joannayuan6869
    @joannayuan6869 3 роки тому

    Can you use encrypted data from party A to train a ML model such that the ML model can be used for inferencing for party B?

    • @SATSifaction
      @SATSifaction  3 роки тому +2

      If Party A and B have a similar data set and use case sure. For example if you wanted to use encrypted data from 10 organizations to predict turnover for an 11th company, it can be done as long as the features are similar. If not then your data for your prediction model don’t align to your trained data in which case it’s not recommended

  • @farnazkhorsand1225
    @farnazkhorsand1225 2 роки тому

    It would be great if you could do an example with functional encryption as well.

    • @SATSifaction
      @SATSifaction  2 роки тому

      What do you mean?

    • @danbolser5913
      @danbolser5913 Рік тому

      @@SATSifaction I think FE hides the function being applied to the data... I think...

  • @jibueapen460
    @jibueapen460 Рік тому

    Hi will this work for BERT based models?

  • @joannayuan6869
    @joannayuan6869 3 роки тому

    Still having trouble to wrap my head around this. If my ML model takes in IOT readings (i.e. vibration data), and use it for anomaly detection. If I send the encrypted data to the ML model, pretty sure it'll break the ML model since the input data is for sure significantly different from the training data. In this case, does that mean the ML model would have to use encrypted data to do the training?

    • @sofuno863
      @sofuno863 3 роки тому

      same thoughts

    • @DamanArora1209
      @DamanArora1209 2 роки тому

      No. I think somewhere you misunderstood what is happening. The weights of the model are changed in accordance with the public key which is sent with the data. Pls watch the video again carefully ☺️

    • @udayhanmante2402
      @udayhanmante2402 Рік тому

      @@DamanArora1209 What I can see is we are not changing the model coefficients while multiplying them with encrypted data

    • @danbolser5913
      @danbolser5913 Рік тому

      @@udayhanmante2402 That's how this type of PARTIAL homomorphic encryption works, remember D ( E(A) * scalar ) = A * scalar

  • @shalandichannel
    @shalandichannel 2 роки тому

    if the user sends the same payload all over again, will the encrypted version of it "rotate" or will it always look the same?
    in the second case one could easily guess the age being sent using statistical analysis.
    If the second is true, is that also an issue in Full HME?
    If the second is true, would it be "enough" for the user to create another key pair and start encrypting the data using the new pair, so it looks different ?
    I also assume that the server cannot use the client's public key to encrypt the data right? otherwise also a brute force approach would do the job, when trying to guess the distribution of the data that's coming in

    • @shalandichannel
      @shalandichannel 2 роки тому

      btw good video, i am just new to the matter thats why so many questions.
      BTW the py-seal project looks archived on github

    • @danbolser5913
      @danbolser5913 Рік тому

      Most libraries should 'salt' the encrypted value, so that same clearText in != same cipherText

  • @manish.yad1802
    @manish.yad1802 3 роки тому +1

    You are building model on original data and then encrypting the model. Is it possible to build model on encrypted data?

    • @SATSifaction
      @SATSifaction  3 роки тому +1

      great question. im not sure its possible just yet to my understanding but maybe one day. First, I would question the practicality of it because when you build ML models you need to have a basic understanding of your data. If its in cypher text you may not even know what you're working with tbh so you're result will be compromised. . Second, if we look at it theoretically there are a lot of complexities especially if you're dealing with a classification model. In either scenerio your feature set needs to be in cypher text which all need to be converted into some form of numerical representation for any ML model to work. Given this encryption is one way, getting any meaningful representation would be difficult and probably require excess compute power to try to decrypt it to a format that may make sense to an ML model tho you would still have higher loss in my opinion than if it wasn't encrypted. Unless you have a lot of infrastructure resources, it may be too premature to delve in this space.

    • @theneuralmancer
      @theneuralmancer 3 роки тому

      Yes, it is!
      Re: data distribution, yes, that is a potential problem but it kind of depends on the problem.

  • @hetpatel9369
    @hetpatel9369 Рік тому

    Hey, this is my compute data function and the error is: 'EncryptedNumber' object is not subscriptable.
    def computeData():
    pk = data['public_key']
    pubkey = paillier.PaillierPublicKey(n=int(pk['n']))
    for x in data['values']:
    enc_nums_rec = paillier.EncryptedNumber(pubkey, int(x[0], int(x[1]))) # extracting public key from the data
    for i in range(len(list(mycoef))):
    results = sum(mycoef[i]*enc_nums_rec[i])
    return results, pubkey
    If someone can help then it will be appreciated.

  • @dhivinjoshua4714
    @dhivinjoshua4714 2 роки тому

    Is it possible to train the model on encrypted data?

    • @SATSifaction
      @SATSifaction  2 роки тому +1

      Yes that’s what this video displays albeit on limited data and only regression. Full HME is still being worked on and will have more application in future

    • @nawelyala7431
      @nawelyala7431 2 роки тому +1

      @@SATSifaction Hello. The video shows that the regression model is trained on unencripted data. myCoef = LinMdel.getCoef() use normal data. Thanks

  • @mr.geniussam1670
    @mr.geniussam1670 Рік тому

    Git Missing :/

  • @azzedinezouba940
    @azzedinezouba940 3 роки тому

    C'ant you hellp me please